

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à.

# CloudWatch output del flusso metrico in formato JSON
<a name="CloudWatch-metric-streams-formats-json"></a>

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, consulta [Converting Your Input Record Format in Firehose](https://docs.aws.amazon.com/firehose/latest/dev/record-format-conversion.html). Per ulteriori informazioni sul formato corretto per, consulta. AWS Glue[Quale AWS Glue schema devo usare per il formato di output JSON?](#CloudWatch-metric-streams-format-glue)

Nel formato JSON, i valori validi per `unit` sono gli stessi del valore di `unit` nella struttura dell'API `MetricDatum`. Per ulteriori informazioni, consulta [ MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html). 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 AWS Glue schema devo usare per il formato di output JSON?
<a name="CloudWatch-metric-streams-format-glue"></a>

Di seguito è riportato un esempio di rappresentazione JSON della AWS Glue tabella `StorageDescriptor` for an, che verrebbe quindi utilizzata da Firehose. Per ulteriori informazioni su`StorageDescriptor`, vedere. [ 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'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