Formato JSON - Amazon CloudWatch

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Formato JSON

In un flusso CloudWatch metrico che utilizza il formato JSON, ogni record Firehose contiene più oggetti JSON separati da un carattere di nuova riga (\n). Ogni oggetto include un singolo punto dati di un singolo parametro.

Il formato JSON utilizzato è completamente compatibile con AWS Glue e con Amazon Athena. Se disponi di un flusso di distribuzione Firehose e di una AWS Glue tabella formattata correttamente, il formato può essere trasformato automaticamente in formato Parquet o in formato Orc (Optimized Row Columnar) prima di essere archiviato in S3. Per ulteriori informazioni sulla trasformazione del formato, vedere Conversione del formato di registrazione di input in Firehose. Per ulteriori informazioni sul formato corretto per AWS Glue, vedere. Quale schema AWS Glue dovrei usare per il formato di output JSON?

Nel formato JSON, i valori validi per unit sono gli stessi del valore di unit nella struttura dell'API MetricDatum. Per ulteriori informazioni, vedere MetricDatum. Il valore per il campo timestamp è in millisecondi di epoca, come 1616004674229.

Di seguito è riportato un esempio del formato. In questo esempio, JSON è formattato per una facile lettura, ma in pratica l'intero formato si trova su un'unica riga.

{ "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" }

Quale schema AWS Glue dovrei usare per il formato di output JSON?

Di seguito è riportato un esempio di rappresentazione JSON della AWS Glue tabella StorageDescriptor for an, che verrebbe quindi utilizzata da Firehose. Per ulteriori informazioni suStorageDescriptor, vedere. 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://my-s3-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" } }

L'esempio precedente riguarda i dati scritti su Amazon S3 in formato JSON. Sostituisci i valori nei campi seguenti con i valori indicati per memorizzare i dati in formato Parquet o in formato ORC (Optimized Row Columnar).

  • Parquet:

    • Formato di input: org.apache.hadoop.hive.ql.io.parquet. MapredParquetInputFormat

    • Formato di output: org.apache.hadoop.hive.ql.io.parquet. MapredParquetOutputFormat

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

    • parameters.classification: parquet

  • ORC:

    • Formato di input: org.apache.hadoop.hive.ql.io.orc. OrcInputFormat

    • Formato di output: org.apache.hadoop.hive.ql.io.orc. OrcOutputFormat

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

    • parameters.classification: orc