本ドキュメントでは、 Object Storage Service (OSS) に転送される Log Service ログを格納する Parquet ストレージに関する設定を紹介します。 OSS へのログの転送の詳細については、OSS へのログの転送をご参照ください。
Parquet ストレージを構成
データ型Parquet には、 String 、boolean、int32、int64、float、double の 6 つのデータ型を使用できます。
Log Service のデータは、ログ転送の際に文字列から任意の Parquet 型に変換されます。String 型以外のデータ型への変換に失敗した列は、null に設定されます。
列を構成Log Service のフィールド名およびターゲットの Parquet のデータ型を指定します。Parquet データはここで設定したフィールド順に転送されます。Log Service のフィールド名は、Parquet のデータのかカラム名になります。以下の場合、データカラムは null に設定されます。
- Log Service データにないフィールド名
- String 型から非 String 型 (double や int64 など) への変換に失敗するフィールド
図 1. フィールド設定ページ
予約フィールド | 説明 |
---|---|
__time__ |
ログの UNIX タイムスタンプ (1970-01-01 からの秒数)。ログの時間フィールドに従って 計算されます。 |
__topic__ |
ログトピック |
__source__ |
ソースログクライアントの IP アドレス |
上記フィールドは、JSON ストレージにはデフォルトで含まれます。
必要に応じて、parquet ストレージまたは CSV ストレージに含めるフィールドを選択します。たとえば、ログトピックが必要な場合は、フィールド名__topic__
を入力し、データ型には String を選択します。
OSS ストレージアドレス
圧縮タイプ | ファイル拡張子 | OSS ファイルのアドレス例 |
---|---|---|
圧縮しない | .parquet | oss://oss-shipper-shenzhen/ecs_test/2016/01/26/20/54_1453812893059571256_937.parquet |
snappy | .snappy.parquet | oss://oss-shipper-shenzhen/ecs_test/2016/01/26/20/54_1453812893059571256_937.snappy.parquet |
データを活用
E-MapReduce/Spark/Hive
コミュニティ文書をご参照ください。
スタンドアロン検証ツール
オープンソースコミュニティの提供するparquet-toolsで、parquet のフォーマットを検証、スキーマを表示、ファイルごとデータを読み取ります。
- Parquet ファイルのスキーマの表示
$ java -jar parquet-tools-1.6.0rc3-SNAPSHOT.jar schema -d 00_1490803532136470439_124353.snappy.parquet | head -n 30 message schema { optional int32 __time__; optional binary ip; optional binary __source__; optional binary method; optional binary __topic__; optional double seq; optional int64 status; optional binary time; optional binary url; optional boolean ua; } creator: parquet-cpp version 1.0.0 file schema: schema -------------------------------------------------------------------------------- __time__: OPTIONAL INT32 R:0 D:1 ip: OPTIONAL BINARY R:0 D:1 .......
- Parquet ファイルのすべてのコンテンツの表示
$ java -jar parquet-tools-1.6.0rc3-SNAPSHOT.jar head -n 2 00_1490803532136470439_124353.snappy.parquet __time__ = 1490803230 ip = 10.200.98.220 __source__ = *. *. *.* method = POST __topic__ = seq = 1667821.0 status = 200 time = 30/Mar/2017:00:00:30 +0800 url = /PutData? Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature> HTTP/1.1 __time__ = 1490803230 ip = 10.200.98.220 __source__ = *. *. *.* method = POST __topic__ seq = 1667822.0 status = 200 time = 30/Mar/2017:00:00:30 +0800 url = /PutData? Category=YunOsAccountOpLog&AccessKeyId=<yourAccessKeyId>&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=<yourSignature> HTTP/1.1
詳細な操作手順については、java -jar parquet-tools-1.6.0rc3-SNAPSHOT.jar -h
コマンドを実行します。