

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
<a name="CloudWatch-metric-streams-formats-json"></a>

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 [Conversion du format de votre enregistrement d’entrée dans Firehose](https://docs.aws.amazon.com/firehose/latest/dev/record-format-conversion.html). Pour plus d'informations sur le format approprié pour AWS Glue, consultez[Quel AWS Glue schéma dois-je utiliser pour le format de sortie JSON ?](#CloudWatch-metric-streams-format-glue).

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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html). 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 AWS Glue schéma dois-je utiliser pour le format de sortie JSON ?
<a name="CloudWatch-metric-streams-format-glue"></a>

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 sur`StorageDescriptor`, voir [ StorageDescriptor](https://docs.aws.amazon.com/glue/latest/webapi/API_StorageDescriptor.html).

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