ログがSimple Log ServiceからObject Storage Service (OSS) に送信された後、ログはさまざまな形式で保存できます。 このトピックでは、Parquet形式について説明します。
パラメーター
次の図は、配送ルールでストレージ形式にparquetを指定する場合に設定する必要があるパラメーターを示しています。 詳細については、「Simple log ServiceからOSSへのログデータの送信」をご参照ください。
下表に、各パラメーターを説明します。
パラメーター | 説明 |
キー名 | OSSに送信するログフィールドの名前。 ログストアの [生ログ] タブでログフィールドを表示できます。 ログフィールドを1つずつ追加することを推奨します。 ログフィールドがOSSに送信されると、ログフィールドは追加順序に基づいてParquetファイルに保存されます。 ログフィールドの名前は、Parquetファイルの列の名前として使用されます。 OSSに送信できるログフィールドには、ログコンテンツのフィールドと、__time__ 、_topic__ 、__source__ などの予約済みフィールドが含まれます。 予約済みフィールドの詳細については、「予約済みフィールド」をご参照ください。 Parquetファイルの列の値は、次のシナリオではnullです。
説明
|
タイプ | 指定されたログフィールドのデータ型。 次のデータ型がサポートされています: STRING、BOOLEAN、INT32、INT64、FLOAT、およびDOUBLE。 STRINGタイプのログフィールドがSimple log ServiceからOSSに送信されると、ログフィールドはbyte_arrayタイプに変換されます。これはParquetファイルでサポートされています。 さらに、Parquetファイルの |
OSSオブジェクトのサンプルURL
ログがOSSに送信されると、ログはOSSバケットに保存されます。 次の表に、ログを格納するOSSオブジェクトのサンプルURLを示します。
圧縮タイプ | オブジェクト接尾辞 | サンプルURL | 説明 |
圧縮されていない | . 寄木細工 | oss://oss-shipper-shenzhen/ecs_test/2016/01/26/20/54_1453812893059571256_937.parquet | OSSオブジェクトをコンピューターにダウンロードして、オブジェクト内のデータを使用できます。 詳細については、「データ消費」をご参照ください。 |
スナッピー | .snappy.parquet | oss://oss-shipper-shenzhen/ecs_test/2016/01/26/20/54_1453812893059571256_937.snappy.parquet |
データ消費
E-MapReduce、Spark、またはHiveを使用して、OSSに送信されたデータを消費できます。 詳細については、「LanguageManual DDL」をご参照ください。
検査ツールを使用してデータを消費することもできます。
Pythonが提供するparquet-toolsユーティリティを使用して、Parquetファイルの検査、ファイルの詳細の表示、およびデータの読み取りを行うことができます。 次のコマンドを実行するか、別の方法を使用してユーティリティをインストールできます。
pip3 install parquet-tools
Parquetファイル内の列のデータを表示する
コマンド
remote_addr列とbody_bytes_sent列のデータを表示します。
parquet-tools show -n 2 -c remote_addr,body_bytes_sent 44_1693464263000000000_2288ff590970d092.parquet
レスポンス
+----------------+-------------------+ | remote_addr | body_bytes_sent | |----------------+-------------------| | 61.243.1.63 | b'1904' | | 112.235.74.182 | b'4996' | +----------------+-------------------+
コンテンツをParquetファイルで表示します (ファイルをCSV形式に変換します) 。
コマンド
parquet-tools csv -n 2 44_1693464263000000000_2288ff590970d092.parquet
レスポンス
remote_addr,body_bytes_sent,time_local,request_method,request_uri,http_user_agent,remote_user,request_time,request_length,http_referer,host,http_x_forwarded_for,upstream_response_time,status b'61.**.**.63',b'1904',b'31/Aug/2023:06:44:01',b'GET',b'/request/path-0/file-7',"b'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_5_8) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.801.0 Safari/535.1'",b'uh2z',b'49',b'4082',b'www.kwm.mock.com',b'www.ap.mock.com',b'222.**.**.161',b'2.63',b'200' b'112.**.**.182',b'4996',b'31/Aug/2023:06:44:01',b'GET',b'/request/path-1/file-5',b'Mozilla/5.0 (Windows NT 6.1; de;rv:12.0) Gecko/20120403211507 Firefox/12.0',b'tix',b'71',b'1862',b'www.gx.mock.com',b'www.da.mock.com',b'36.**.**.237',b'2.43',b'200'
Parquetファイルの詳細を表示する
コマンド
parquet-tools inspect 44_1693464263000000000_2288ff590970d092.parquet
レスポンス
############ file meta data ############ created_by: SLS version 1 num_columns: 14 num_rows: 4661 num_row_groups: 1 format_version: 1.0 serialized_size: 2345 ############ Columns ############ remote_addr body_bytes_sent time_local request_method request_uri http_user_agent remote_user request_time request_length http_referer host http_x_forwarded_for upstream_response_time status ############ Column(remote_addr) ############ name: remote_addr path: remote_addr max_definition_level: 1 max_repetition_level: 0 physical_type: BYTE_ARRAY logical_type: None converted_type (legacy): NONE compression: UNCOMPRESSED (space_saved: 0%) ......