本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
JSON 格式的 CloudWatch 指標串流輸出
在使用 JSON 格式的 CloudWatch 指標串流中,每個 Firehose 記錄包含多個以換行字元 (\n) 分隔的 JSON 物件。每個物件都包含單一指標的單一資料點。
使用的 JSON 格式與 AWS Glue 和 Amazon Athena 完全相容。如果您有 Firehose 交付串流且 AWS Glue 資料表格式正確,則格式可以自動轉換為 Parquet 格式或最佳化資料列單欄式 (ORC) 格式,然後再存放在 S3 中。如需轉換格式的詳細資訊,請參閱在 Firehose 中轉換輸入記錄格式。如需 正確格式的詳細資訊 AWS Glue,請參閱 我應該為 JSON 輸出格式使用哪種 AWS Glue 結構描述?。
在 JSON 格式中,unit
的有效值與 MetricDatum
API 結構中的 unit
的值相同。如需詳細資訊,請參閱 MetricDatum。timestamp
欄位的值以 epoch 毫秒為單位,例如 1616004674229
。
以下是格式的範例。在此範例中,JSON 已經過格式化以利閱讀;但實際上,整個格式位於單一行上。
{ "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" }
我應該為 JSON 輸出格式使用哪種 AWS Glue 結構描述?
以下是 StorageDescriptor
AWS Glue 資料表的 JSON 表示法範例,然後 Firehose 會使用。如需有關 StorageDescriptor
的詳細資訊,請參閱 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" } }
上述範例適用於以 JSON 格式撰寫在 Simple Storage Service (Amazon S3) 上的資料。將下列欄位中的值取代為指出的值,以 Parquet 格式或最佳化列單欄式 (ORC) 格式存放資料。
Parquet:
inputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat
outputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat
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.org.apache.hadoop.hive.ql.io.orcserde
parameters.classification: orc