CloudWatch Ausgabe des metrischen Streams im Format JSON - Amazon CloudWatch

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 des metrischen Streams im Format JSON

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 haben und einen AWS Glue Bei korrekt formatierter Tabelle kann das Format automatisch in das Parquet-Format oder das Format Optimized Row Columnar (ORC) 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 AWS Glue, finden Sie unter Welche AWS Glue Schema sollte ich für das JSON Ausgabeformat verwenden?.

Im JSON Format unit sind die gültigen Werte für 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 JSON ist das Format so formatiert, dass es leicht lesbar ist, aber in der Praxis befindet sich das gesamte Format in einer einzigen 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" }

Welche 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 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 vorherige 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 Format Optimized Row Columnar (ORC) zu speichern.

  • Parquet:

    • inputFormat: org.apache.hadoop.hive.ql.io.parquet. MapredParquetInputFormat

    • outputFormat: org.apache.hadoop.hive.ql.io.parquet. MapredParquetOutputFormat

    • SerDeInfo. serializationLib: org.apache.hadoop.hive.ql.io.parquet.serde. ParquetHiveSerDe

    • parameters.classification: parquet

  • ORC:

    • inputFormat: org.apache.hadoop.hive.ql.io.orc. OrcInputFormat

    • outputFormat: org.apache.hadoop.hive.ql.io.orc. OrcOutputFormat

    • SerDeInfo. serializationLib: org.apache.hadoop.hive.ql.io.orc. OrcSerde

    • parameters.classification: orc