Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
CloudWatch Ausgabe eines metrischen Streams im JSON-Format
In einem CloudWatch Metrik-Stream, der das JSON-Format verwendet, enthält jeder Firehose-Datensatz mehrere JSON-Objekte, die durch ein Zeilenumbruchzeichen (\n) getrennt sind. Jedes Objekt enthält einen einzelnen Datenpunkt einer einzelnen Metrik.
Das verwendete JSON-Format ist vollständig kompatibel mit AWS Glue und mit Amazon Athena. Wenn Sie einen Firehose-Lieferstream und eine korrekt formatierte AWS Glue Tabelle haben, kann das Format automatisch in das Parquet-Format oder das Optimized Row Columnar (ORC) -Format umgewandelt werden, bevor es in S3 gespeichert wird. Weitere Informationen zum Transformieren des Formats finden Sie unter Konvertieren Ihres Eingabedatensatzformats in Firehose. Weitere Informationen zum richtigen Format für finden Sie AWS Glue unterWelches AWS Glue -Schema sollte ich für das JSON-Ausgabeformat verwenden?.
Im JSON-Format sind die gültigen Werte für unit
dieselben wie für den Wert von unit
in der MetricDatum
-API-Struktur. Weitere Informationen finden Sie unter MetricDatum. Der Wert für das timestamp
-Feld ist in Epochen-Millisekunden angegeben, z. B. 1616004674229
.
Nachfolgend sehen Sie ein Beispiel des Formats. In diesem Beispiel wird der JSON zum einfachen Lesen formatiert, in der Praxis befindet sich das gesamte Format in einer einzelnen Zeile.
{ "metric_stream_name": "MyMetricStream", "account_id": "1234567890", "region": "us-east-1", "namespace": "AWS/EC2", "metric_name": "DiskWriteOps", "dimensions": { "InstanceId": "i-123456789012" }, "timestamp": 1611929698000, "value": { "count": 3.0, "sum": 20.0, "max": 18.0, "min": 0.0, "p99": 17.56, "p99.9": 17.8764, "TM(25%:75%)": 16.43 }, "unit": "Seconds" }
Welches AWS Glue -Schema sollte ich für das JSON-Ausgabeformat verwenden?
Das Folgende ist ein Beispiel für eine JSON-Darstellung von StorageDescriptor
für eine AWS Glue Tabelle, die dann von Firehose verwendet würde. Weitere Informationen zu finden Sie StorageDescriptor
unter StorageDescriptor.
{ "Columns": [ { "Name": "metric_stream_name", "Type": "string" }, { "Name": "account_id", "Type": "string" }, { "Name": "region", "Type": "string" }, { "Name": "namespace", "Type": "string" }, { "Name": "metric_name", "Type": "string" }, { "Name": "timestamp", "Type": "timestamp" }, { "Name": "dimensions", "Type": "map<string,string>" }, { "Name": "value", "Type": "struct<min:double,max:double,count:double,sum:double,p99:double,p99.9:double>" }, { "Name": "unit", "Type": "string" } ], "Location": "s3://amzn-s3-demo-bucket/", "InputFormat": "org.apache.hadoop.mapred.TextInputFormat", "OutputFormat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat", "SerdeInfo": { "SerializationLibrary": "org.apache.hive.hcatalog.data.JsonSerDe" }, "Parameters": { "classification": "json" } }
Das obige Beispiel bezieht sich auf Daten, die auf Amazon S3 im JSON-Format geschrieben wurden. Ersetzen Sie die Werte in den folgenden Feldern durch die angegebenen Werte, um die Daten im Parquet-Format oder im Optimized Row Columnar (ORC)-Format zu speichern.
Parquet:
Eingabeformat: org.apache.hadoop.hive.ql.io.parquet. MapredParquetInputFormat
Ausgabeformat: org.apache.hadoop.hive.ql.io.parquet. MapredParquetOutputFormat
SerDeInfo.serializationLib: org.apache.hadoop.hive.ql.io.parquet.serde. ParquetHiveSerDe
parameters.classification: parquet
ORC:
Eingabeformat: org.apache.hadoop.hive.ql.io.orc. OrcInputFormat
Ausgabeformat: org.apache.hadoop.hive.ql.io.orc. OrcOutputFormat
SerDeInfo.serializationLib: org.apache.hadoop.hive.ql.io.orc. OrcSerde
parameters.classification: orc