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

通過SDK投遞數據到OSS

重要

本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。

使用SDK進行數據投遞前,您需要了解使用數據湖投遞功能的注意事項、接口等信息。創建投遞任務后,表格存儲數據表中的數據會自動投遞到OSS Bucket中存儲。

注意事項

  • 目前支持使用數據湖投遞功能的地域有華東1(杭州)、華東2(上海)、華北2(北京)和華北3(張家口)。

  • 數據湖投遞不支持同步刪除操作,表格存儲中的刪除操作在數據投遞時會被忽略,已投遞到OSS中的數據不會被刪除。

  • 新建數據投遞任務時存在最多1分鐘的初始化時間。

  • 數據同步存在延遲,寫入速率穩定時,延遲在3分鐘內。數據同步的P99延遲在10分鐘內。

    說明

    P99延遲表示過去10秒內最慢的1%的請求的平均延遲。

前提條件

  • 在對象存儲服務側已完成如下操作:

    已開通OSS服務且在表格存儲實例所在地域創建Bucket,詳情請參見開通OSS服務

    說明

    數據湖投遞支持投遞到和表格存儲相同地域的任意OSS Bucket中。如需投遞到其他數倉存儲(例如MaxCompute),請提交工單申請。

  • 在表格存儲服務側已完成如下操作:

    • 已在實例詳情頁面獲取實例的服務地址(Endpoint)。更多信息,請參考服務地址

    • 已創建表格存儲數據表。具體操作,請參見創建數據表

  • 在訪問控制RAM服務側完成如下操作:

    • 已創建RAM用戶并為RAM用戶授予管理表格存儲權限(AliyunOTSFullAccess)。具體操作,請參見創建RAM用戶RAM用戶授權

      警告

      阿里云賬號AccessKey泄露會威脅您所有資源的安全。建議您使用RAM用戶AccessKey進行操作,可以有效降低AccessKey泄露的風險。

      已為RAM用戶創建AccessKey。具體操作,請參見創建AccessKey

  • 已配置訪問憑證。具體操作,請參見配置訪問憑證

接口

接口

說明

CreateDeliveryTask

創建一個投遞任務。

ListDeliveryTask

列出一個數據表所有的投遞任務信息。

DescribeDeliveryTask

查詢投遞任務描述信息。

DeleteDeliveryTask

刪除一個投遞任務。

參數

參數

說明

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列存格式存儲。默認值為Parquet。

    數據湖投遞默認使用PLAIN編碼方式,PLAIN編碼方式支持任意類型數據。

    目前僅支持Parquet,一般無需配置,保持默認即可。

  • eventTimeColumn:事件時間列,用于指定按某一列數據的時間進行分區,配置項包括時間列名和時間格式。其中時間格式(EventTimeFormat)的取值范圍為RFC822、RFC850、RFC1123、RFC3339Unix,請根據實際時間格式進行配置。

    如果不設置此參數,則按數據寫入表格存儲的時間進行分區。

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

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

    重要

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

taskType

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

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

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

  • BASE_INC(默認):表示全量&增量數據投遞模式,全量數據同步完成后,再同步增量數據。

    其中增量數據同步時可以獲取最新投遞時間和了解當前投遞狀態。

使用

您可以通過Java SDKGo SDK實現數據湖投遞功能。此處以Java SDK為例介紹數據投遞湖的操作。

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

import com.alicloud.openservices.tablestore.ClientException;
import com.alicloud.openservices.tablestore.SyncClient;
import com.alicloud.openservices.tablestore.TableStoreException;
import com.alicloud.openservices.tablestore.model.delivery.*;
public class DeliveryTask {

        public static void main(String[] args) {
            final String endPoint = "https://yourinstancename.cn-hangzhou.ots.aliyuncs.com";

            final String accessKeyId = System.getenv("OTS_AK_ENV");
            
            final String accessKeySecret = System.getenv("OTS_SK_ENV");

            final String instanceName = "yourinstancename";

            SyncClient client = new SyncClient(endPoint, accessKeyId, accessKeySecret, instanceName);
            try {
                createDeliveryTask(client);
                System.out.println("end");
            } catch (TableStoreException e) {
                System.err.println("操作失敗,詳情:" + e.getMessage() + e.getErrorCode() + e.toString());
                System.err.println("Request ID:" + e.getRequestId());
            } catch (ClientException e) {
                System.err.println("請求失敗,詳情:" + e.getMessage());
            } finally {
                client.shutdown();
            }
        }

        private static void createDeliveryTask(SyncClient client){
            String tableName = "sampleTable";
            String taskName = "sampledeliverytask";
            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("Col1", 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");
        }
}