Log Service將日誌投遞到OSS後,支援儲存為不同的檔案格式。本文介紹Parquet格式。
參數配置
在建立OSS投遞任務(新版)時,選擇儲存格式為parquet,對應的參數配置如下所示。
相關參數說明如下表所示。
參數 | 說明 |
Key名稱 | 您可以在原始日誌頁簽中查看日誌欄位,將需要投遞到OSS的欄位名有序填入。OSS投遞任務將按照此順序組織Parquet資料,並使用該欄位名作為Parquet資料的列名。 Log Service還提供保留欄位__time__、__topic__、__source__。保留欄位的更多資訊,請參見保留欄位。 如果遇到如下兩種情況時,Parquet資料的列值為null。
說明
|
類型 | Parquet格式支援儲存string、boolean、int32、int64、float、double這6種類型的資料。其中, 日誌投遞後,string類型會以Parquet中的byte_array類型進行儲存,且系統不會設定Parquet資料中 |
OSS檔案地址
投遞到OSS後,OSS檔案地址樣本如下表所示。
在建立OSS投遞任務時,如果您自訂了檔案尾碼,則檔案尾碼由您自訂的尾碼決定。
在建立OSS投遞任務時,如果您未自訂檔案尾碼,則檔案尾碼由壓縮類型決定。
壓縮類型 | 檔案尾碼 | OSS檔案地址樣本 | 說明 |
不壓縮 | 如果您自訂了檔案尾碼,則以您的設定為準,例如.suffix。 | oss://oss-shipper-chengdu/ecs_test/2022/01/26/20/54_1453812893059571256_937.suffix | 下載到本地,使用資料消費方式開啟 。具體操作,請參見資料消費。 |
如果未自訂檔案尾碼,則檔案尾碼為.parquet。 | oss://oss-shipper-chengdu/ecs_test/2022/01/26/20/54_1453812893059571256_937.parquet | ||
壓縮(snappy) | 如果您自訂了檔案尾碼,則以您的設定為準,例如.suffix。 | oss://oss-shipper-chengdu/ecs_test/2022/01/26/20/54_1453812893059571256_937.suffix | |
如果未自訂檔案尾碼,則檔案尾碼為.snappy.parquet | oss://oss-shipper-chengdu/ecs_test/2022/01/26/20/54_1453812893059571256_937.snappy.parquet | ||
壓縮(gzip) | 如果您自訂了檔案尾碼,則以您的設定為準,例如.suffix。 | oss://oss-shipper-chengdu/ecs_test/2022/01/26/20/54_1453812893059571256_937.suffix | |
如果未自訂檔案尾碼,則檔案尾碼為.gz.parquet | oss://oss-shipper-chengdu/ecs_test/2022/01/26/20/54_1453812893059571256_937.gz.parquet | ||
壓縮(zstd) | 如果您自訂了檔案尾碼,則以您的設定為準,例如.suffix。 | oss://oss-shipper-chengdu/ecs_test/2022/01/26/20/54_1453812893059571256_937.suffix | |
如果未自訂檔案尾碼,則檔案尾碼為.zst.parquet | oss://oss-shipper-chengdu/ecs_test/2022/01/26/20/54_1453812893059571256_937.zst.parquet |
資料消費
通過E-MapReduce、Spark 、Hive消費資料。更多資訊,請參見社區文檔。
通過單機校正工具消費資料。
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%) ......