Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
CloudWatch sortie de flux métrique au format JSON
Dans un flux CloudWatch métrique utilisant le format JSON, chaque enregistrement Firehose contient plusieurs objets JSON séparés par un caractère de nouvelle ligne (\n). Chaque objet comprend un point de données unique d'une seule métrique.
Le format JSON utilisé est entièrement compatible avec AWS Glue et avec Amazon Athena. Si vous disposez d'un flux de diffusion Firehose et d'un AWS Glue tableau correctement formaté, le format peut être automatiquement transformé au format Parquet ou au format ORC (Optimized Row Columnar) avant d'être stocké dans S3. Pour plus d'informations sur la transformation du format, consultez la section Conversion du format de votre enregistrement d'entrée dans Firehose. Pour plus d'informations sur le format approprié pour AWS Glue, consultezQuel schéma AWS Glue devrais-je utiliser pour le format de sortie JSON ?.
Au format JSON, les valeurs valides pour unit
sont identiques à celles de unit
dans la structure d'API MetricDatum
. Pour plus d'informations, consultez MetricDatum. La valeur du champ timestamp
est en millisecondes d'époque, comme 1616004674229
.
Voici un exemple du format. Dans cet exemple, le format JSON est mis en forme afin de faciliter la lecture. En pratique, l'ensemble du format se trouve sur une seule ligne.
{ "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" }
Quel schéma AWS Glue devrais-je utiliser pour le format de sortie JSON ?
Voici un exemple de représentation JSON de la AWS Glue table StorageDescriptor
for an, qui serait ensuite utilisée par Firehose. Pour plus d'informations surStorageDescriptor
, voir 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" } }
L'exemple précédent concerne les données écrites sur Amazon S3 au format JSON. Remplacez les valeurs des champs suivants par les valeurs indiquées pour stocker les données au format Parquet ou ORC (Optimized Row Columnar).
Parquet :
Format d'entrée : org.apache.hadoop.hive.ql.io.parquet. MapredParquetInputFormat
Format de sortie : org.apache.hadoop.hive.ql.io.parquet. MapredParquetOutputFormat
SerDeInfo.serializationLib : org.apache.hadoop.hive.ql.io.parquet.serde. ParquetHiveSerDe
parameters.classification : parquet
ORC :
Format d'entrée : org.apache.hadoop.hive.ql.io.orc. OrcInputFormat
Format de sortie : org.apache.hadoop.hive.ql.io.orc. OrcOutputFormat
SerDeInfo.serializationLib : org.apache.hadoop.hive.ql.io.orc. OrcSerde
parameters.classification : orc