日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

讀取以分區(qū)方式存儲(chǔ)的OSS數(shù)據(jù)

更新時(shí)間:

MaxCompute支持創(chuàng)建OSS外部表為分區(qū)表,訪問(wèn)OSS上以分區(qū)方式存儲(chǔ)的數(shù)據(jù),通過(guò)該方式可降低讀取數(shù)據(jù)量并提升數(shù)據(jù)處理效率。本文為您介紹MaxCompute支持的OSS標(biāo)準(zhǔn)分區(qū)路徑格式和自定義分區(qū)路徑格式。

背景信息

創(chuàng)建OSS外部表后,MaxCompute會(huì)全量掃描OSS目錄下的所有數(shù)據(jù),包括子目錄下的數(shù)據(jù)文件。但當(dāng)數(shù)據(jù)量比較大時(shí),對(duì)全目錄掃描會(huì)產(chǎn)生不必要的I/O消耗以及數(shù)據(jù)處理時(shí)間。通常,解決該問(wèn)題有如下兩種方法:

  • (推薦)方式一:在OSS上將數(shù)據(jù)以標(biāo)準(zhǔn)分區(qū)路徑或自定義分區(qū)路徑方式存儲(chǔ)。通過(guò)MaxCompute新建OSS外部表時(shí),您需要在建表語(yǔ)句指定分區(qū)及oss_location信息。推薦您使用標(biāo)準(zhǔn)分區(qū)路徑。更多分區(qū)路徑信息,請(qǐng)參見標(biāo)準(zhǔn)分區(qū)路徑格式自定義分區(qū)路徑格式

  • 方式二:規(guī)劃多個(gè)數(shù)據(jù)存放路徑。創(chuàng)建多個(gè)OSS外部表來(lái)讀取各個(gè)路徑下的數(shù)據(jù)。即每個(gè)OSS外部表指向OSS數(shù)據(jù)的一個(gè)子集。該方式操作比較繁瑣,數(shù)據(jù)管理效果不佳。不推薦使用該方式。

標(biāo)準(zhǔn)分區(qū)路徑格式

標(biāo)準(zhǔn)分區(qū)路徑格式如下。

oss://<oss_endpoint>/<Bucket名稱>/<目錄名稱>/<partitionKey1=value1>/<partitionKey2=value2>/...
說(shuō)明

因?yàn)镺SS數(shù)據(jù)是離線準(zhǔn)備的,即通過(guò)OSS控制臺(tái)或其他OSS工具上傳到OSS中,所以數(shù)據(jù)的路徑格式取決于上傳時(shí)的格式。

參數(shù)名稱

可選/必填

說(shuō)明

oss_endpoint

必填

OSS訪問(wèn)域名信息。建議您使用OSS提供的內(nèi)網(wǎng)域名,否則將產(chǎn)生OSS流量費(fèi)用。更多OSS內(nèi)網(wǎng)域名信息,請(qǐng)參見訪問(wèn)域名和數(shù)據(jù)中心

說(shuō)明

建議數(shù)據(jù)文件存放的OSS地域與MaxCompute項(xiàng)目所在地域保持一致。由于MaxCompute只在部分地域部署,跨地域的數(shù)據(jù)連通性可能存在問(wèn)題。

Bucket名稱

必填

OSS存儲(chǔ)空間名稱,即Bucket名稱。查看存儲(chǔ)空間名稱操作,請(qǐng)參見列舉存儲(chǔ)空間

目錄名稱

必填

指定OSS目錄名稱。目錄后不需要指定文件名。

partitionKey

必填

OSS外部表的分區(qū)列名。

value

必填

OSS外部表的分區(qū)列值。

例如,某公司會(huì)將每天產(chǎn)生的Log文件以CSV格式存放在OSS上,并通過(guò)MaxCompute以天為周期處理數(shù)據(jù)。則存儲(chǔ)OSS數(shù)據(jù)的標(biāo)準(zhǔn)分區(qū)路徑應(yīng)設(shè)置如下。

oss://oss-odps-test/log_data/year=2016/month=06/day=01/logfile
oss://oss-odps-test/log_data/year=2016/month=06/day=02/logfile
oss://oss-odps-test/log_data/year=2016/month=07/day=10/logfile
oss://oss-odps-test/log_data/year=2016/month=08/day=08/logfile
...

基于上述分區(qū)存儲(chǔ)路徑,創(chuàng)建OSS外部表、引入并分析分區(qū)數(shù)據(jù)的命令示例如下。

--創(chuàng)建OSS外部表。
CREATE EXTERNAL TABLE log_table_external (
    click STRING,
    ip STRING,
    url STRING
  )
partitioned BY (
    year STRING,
    month STRING,
    day STRING
  )
stored BY 'com.aliyun.odps.CsvStorageHandler'
location 'oss://oss-cn-hangzhou-internal.aliyuncs.com/bucket名稱/oss-odps-test/log_data/';

--引入OSS分區(qū)數(shù)據(jù)。
ALTER TABLE log_table_external ADD PARTITION (year = '2016', month = '06', day = '01');
ALTER TABLE log_table_external ADD PARTITION (year = '2016', month = '06', day = '02');
ALTER TABLE log_table_external ADD PARTITION (year = '2016', month = '07', day = '10');
ALTER TABLE log_table_external ADD PARTITION (year = '2016', month = '08', day = '08');
...

--分析數(shù)據(jù)。只訪問(wèn)log_data/year=2016/month=06/day=01子目錄下的文件(logfile),不會(huì)對(duì)整個(gè)log_data目錄做全量數(shù)據(jù)掃描。
SELECT count(DISTINCT(ip)) FROM log_table_external WHERE year = '2016' AND month = '06' AND day = '01';

完整的讀取標(biāo)準(zhǔn)分區(qū)路徑數(shù)據(jù)示例,請(qǐng)參見示例:通過(guò)內(nèi)置文本數(shù)據(jù)解析器創(chuàng)建OSS外部表-分區(qū)表

自定義分區(qū)路徑格式

如果OSS上的數(shù)據(jù)實(shí)際上已按照分區(qū)方式存儲(chǔ),只是路徑不是標(biāo)準(zhǔn)分區(qū)路徑格式時(shí),MaxCompute支持將不同的子目錄綁定至不同的分區(qū)。

自定義分區(qū)路徑格式示例如下,只有分區(qū)列值,無(wú)分區(qū)列名。

oss://oss-odps-test/log_data_customized/2016/06/01/logfile
oss://oss-odps-test/log_data_customized/2016/06/02/logfile
oss://oss-odps-test/log_data_customized/2016/07/10/logfile
oss://oss-odps-test/log_data_customized/2016/08/08/logfile
...

創(chuàng)建OSS外部表后,通過(guò)alter table ... add partition ... location ...命令指定子目錄,將不同的子目錄綁定到不同的分區(qū),命令示例如下。

ALTER TABLE log_table_external ADD PARTITION (year = '2016', month = '06', day = '01')
location 'oss://oss-cn-hangzhou-internal.aliyuncs.com/bucket名稱/oss-odps-test/log_data_customized/2016/06/01/';
ALTER TABLE log_table_external ADD PARTITION (year = '2016', month = '06', day = '02')
location 'oss://oss-cn-hangzhou-internal.aliyuncs.com/bucket名稱/oss-odps-test/log_data_customized/2016/06/02/';
ALTER TABLE log_table_external ADD PARTITION (year = '2016', month = '07', day = '10')
location 'oss://oss-cn-hangzhou-internal.aliyuncs.com/bucket名稱/oss-odps-test/log_data_customized/2016/07/10/';
ALTER TABLE log_table_external ADD PARTITION (year = '2016', month = '08', day = '08')
location 'oss://oss-cn-hangzhou-internal.aliyuncs.com/bucket名稱/oss-odps-test/log_data_customized/2016/08/08/';

基于該方式,自定義分區(qū)路徑后,即使數(shù)據(jù)存放不符合推薦的標(biāo)準(zhǔn)分區(qū)路徑格式,您也可以正確地對(duì)子目錄數(shù)據(jù)進(jìn)行訪問(wèn)。