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

創建投遞任務

如果要表格存儲數據表中的數據投遞到OSS Bucket中存儲,您可以使用CreateDeliveryTask接口創建一個投遞任務。

重要

表格存儲Java SDK5.10.3版本開始支持數據湖投遞功能,請確保已安裝正確的表格存儲Java SDK。關于表格存儲Java SDK版本的更多信息,請參見Java SDK歷史迭代版本

前提條件

  • 已開通OSS服務且在表格存儲實例所在地域創建Bucket。具體操作,請參見開通OSS服務

  • 已通過控制臺創建表格存儲服務關聯角色并記錄角色的ARN。具體操作,請參見創建投遞任務

    服務關聯角色的ARN請通過RAM控制臺獲取,具體操作如下:

    RAM 角色管理界面,搜索AliyunServiceRoleForOTSDataDelivery后,單擊角色名稱,在角色詳情界面,可以查看和復制角色的ARN信息。

    figrole

  • 已初始化OTSClient。具體操作,請參見初始化

  • 已創建數據表并寫入數據。

參數

參數

說明

tableName

數據表名稱。

taskName

投遞任務名稱。

名稱只能包含英文小寫字母(a~z)、數字和短橫線(-),開頭和結尾必須為英文小寫字母或數字,且長度為3~16字符。

taskConfig

投遞任務配置,包括如下選項:

  • ossPrefix:OSS Bucket中的目錄前綴,將表格存儲的數據投遞到該OSS Bucket目錄中。投遞路徑中支持引用$yyyy、$MM、$dd、$HH、$mm五種時間變量。

    • 當投遞路徑中引用時間變量時,可以按數據的寫入時間動態生成OSS目錄,實現hive partition naming style的數據時間分區,從而按照時間分區組織OSS中的文件分布。

    • 當投遞路徑中不引用時間變量時,所有文件會被投遞到固定的OSS前綴目錄中。

  • ossBucket:OSS Bucket名稱。

  • ossEndpoint:OSS Bucket所在地域的服務地址。

  • ossStsRole:表格存儲服務關聯角色的ARN信息。

  • format:投遞的數據的存儲以Parquet列存格式存儲,數據湖投遞默認使用PLAIN編碼方式,PLAIN編碼方式支持任意類型數據。

  • eventTimeColumn:事件時間列,用于指定按某一列數據的時間進行分區。如果不設置此參數,則按數據寫入表格存儲的時間進行分區。

  • parquetSchema:指定需要投遞的數據列,必須手動配置投遞字段的源表字段、目標字段和目標字段類型。

    您可以選擇任意字段以任意順序、名稱寫入列存文件,OSS的列存數據會按Schema數組中的數據列先后順序分布。

    重要

    投遞數據的字段類型必須與數據源的字段類型匹配,否則會作為臟數據丟棄。字段類型映射詳情請參見數據格式映射

taskType

投遞任務的類型,包括如下選項:

  • INC:表示增量數據投遞模式,只同步增量數據。

  • BASE:表示全量數據投遞模式,一次性全表掃描數據同步。

  • BASE_INC(默認):表示全量&增量數據投遞模式,全量數據同步完成后,再同步增量數據 其中增量數據同步時可以獲取最新投遞時間和了解當前投遞狀態。

示例

以下示例用于為數據表創建投遞任務。

private static void createDeliveryTask(SyncClient client) {
    String tableName = "<TABLE_NANE>";
    String taskName = "<TASK_NAME>";
    OSSTaskConfig taskConfig = new OSSTaskConfig();
    taskConfig.setOssPrefix("sampledeliverytask/year=$yyyy/month=$MM");
    taskConfig.setOssBucket("datadeliverytest");
    taskConfig.setOssEndpoint("oss-cn-hangzhou.aliyuncs.com");
    taskConfig.setOssStsRole("acs:ram::17************45:role/aliyunserviceroleforotsdatadelivery"); //eventColumn為可選配置,指定按某一列數據的時間進行分區。如果不設置此參數,則按數據寫入表格存儲的時間進行分區。
    EventColumn eventColumn = new EventColumn("PK1", EventTimeFormat.RFC1123);
    taskConfig.setEventTimeColumn(eventColumn);
    taskConfig.addParquetSchema(new ParquetSchema("PK1", "PK1", DataType.UTF8));
    taskConfig.addParquetSchema(new ParquetSchema("PK2", "PK2", DataType.BOOL));
    taskConfig.addParquetSchema(new ParquetSchema("Col1", "Col1", DataType.UTF8));
    CreateDeliveryTaskRequest request = new CreateDeliveryTaskRequest();
    request.setTableName(tableName);
    request.setTaskName(taskName);
    request.setTaskConfig(taskConfig);
    request.setTaskType(DeliveryTaskType.BASE_INC);
    CreateDeliveryTaskResponse response = client.createDeliveryTask(request);
    System.out.println("resquestID: "+ response.getRequestId());
    System.out.println("traceID: " + response.getTraceId());
    System.out.println("create delivery task success");
}