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

通過(guò)SDK投遞數(shù)據(jù)到OSS

重要

本文中含有需要您注意的重要提示信息,忽略該信息可能對(duì)您的業(yè)務(wù)造成影響,請(qǐng)務(wù)必仔細(xì)閱讀。

使用SDK進(jìn)行數(shù)據(jù)投遞前,您需要了解使用數(shù)據(jù)湖投遞功能的注意事項(xiàng)、接口等信息。創(chuàng)建投遞任務(wù)后,表格存儲(chǔ)數(shù)據(jù)表中的數(shù)據(jù)會(huì)自動(dòng)投遞到OSS Bucket中存儲(chǔ)。

注意事項(xiàng)

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

  • 數(shù)據(jù)湖投遞不支持同步刪除操作,表格存儲(chǔ)中的刪除操作在數(shù)據(jù)投遞時(shí)會(huì)被忽略,已投遞到OSS中的數(shù)據(jù)不會(huì)被刪除。

  • 新建數(shù)據(jù)投遞任務(wù)時(shí)存在最多1分鐘的初始化時(shí)間。

  • 數(shù)據(jù)同步存在延遲,寫(xiě)入速率穩(wěn)定時(shí),延遲在3分鐘內(nèi)。數(shù)據(jù)同步的P99延遲在10分鐘內(nèi)。

    說(shuō)明

    P99延遲表示過(guò)去10秒內(nèi)最慢的1%的請(qǐng)求的平均延遲。

前提條件

  • 在對(duì)象存儲(chǔ)服務(wù)側(cè)已完成如下操作:

    已開(kāi)通OSS服務(wù)且在表格存儲(chǔ)實(shí)例所在地域創(chuàng)建Bucket,詳情請(qǐng)參見(jiàn)開(kāi)通OSS服務(wù)

    說(shuō)明

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

  • 在表格存儲(chǔ)服務(wù)側(cè)已完成如下操作:

    • 已在實(shí)例詳情頁(yè)面獲取實(shí)例的服務(wù)地址(Endpoint)。更多信息,請(qǐng)參考服務(wù)地址

    • 已創(chuàng)建表格存儲(chǔ)數(shù)據(jù)表。具體操作,請(qǐng)參見(jiàn)創(chuàng)建數(shù)據(jù)表

  • 在訪問(wèn)控制RAM服務(wù)側(cè)完成如下操作:

    • 已創(chuàng)建RAM用戶并為RAM用戶授予管理表格存儲(chǔ)權(quán)限(AliyunOTSFullAccess)。具體操作,請(qǐng)參見(jiàn)創(chuàng)建RAM用戶為RAM用戶授權(quán)

      警告

      阿里云賬號(hào)AccessKey泄露會(huì)威脅您所有資源的安全。建議您使用RAM用戶AccessKey進(jìn)行操作,可以有效降低AccessKey泄露的風(fēng)險(xiǎn)。

      已為RAM用戶創(chuàng)建AccessKey。具體操作,請(qǐng)參見(jiàn)創(chuàng)建AccessKey

  • 已配置訪問(wèn)憑證。具體操作,請(qǐng)參見(jiàn)配置訪問(wèn)憑證

接口

接口

說(shuō)明

CreateDeliveryTask

創(chuàng)建一個(gè)投遞任務(wù)。

ListDeliveryTask

列出一個(gè)數(shù)據(jù)表所有的投遞任務(wù)信息。

DescribeDeliveryTask

查詢投遞任務(wù)描述信息。

DeleteDeliveryTask

刪除一個(gè)投遞任務(wù)。

參數(shù)

參數(shù)

說(shuō)明

tableName

數(shù)據(jù)表名稱(chēng)。

taskName

投遞任務(wù)名稱(chēng)。

名稱(chēng)只能包含英文小寫(xiě)字母(a~z)、數(shù)字和短橫線(-),開(kāi)頭和結(jié)尾必須為英文小寫(xiě)字母或數(shù)字,且長(zhǎng)度為3~16字符。

taskConfig

投遞任務(wù)配置,包括如下選項(xiàng):

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

    • 當(dāng)投遞路徑中引用時(shí)間變量時(shí),可以按數(shù)據(jù)的寫(xiě)入時(shí)間動(dòng)態(tài)生成OSS目錄,實(shí)現(xiàn)hive partition naming style的數(shù)據(jù)時(shí)間分區(qū),從而按照時(shí)間分區(qū)組織OSS中的文件分布。

    • 當(dāng)投遞路徑中不引用時(shí)間變量時(shí),所有文件會(huì)被投遞到固定的OSS前綴目錄中。

  • ossBucket:OSS Bucket名稱(chēng)。

  • ossEndpoint:OSS Bucket所在地域的服務(wù)地址。

  • ossStsRole:表格存儲(chǔ)服務(wù)關(guān)聯(lián)角色的ARN信息。

  • format:投遞的數(shù)據(jù)的存儲(chǔ)以Parquet列存格式存儲(chǔ)。默認(rèn)值為Parquet。

    數(shù)據(jù)湖投遞默認(rèn)使用PLAIN編碼方式,PLAIN編碼方式支持任意類(lèi)型數(shù)據(jù)。

    目前僅支持Parquet,一般無(wú)需配置,保持默認(rèn)即可。

  • eventTimeColumn:事件時(shí)間列,用于指定按某一列數(shù)據(jù)的時(shí)間進(jìn)行分區(qū),配置項(xiàng)包括時(shí)間列名和時(shí)間格式。其中時(shí)間格式(EventTimeFormat)的取值范圍為RFC822、RFC850、RFC1123、RFC3339和Unix,請(qǐng)根據(jù)實(shí)際時(shí)間格式進(jìn)行配置。

    如果不設(shè)置此參數(shù),則按數(shù)據(jù)寫(xiě)入表格存儲(chǔ)的時(shí)間進(jìn)行分區(qū)。

  • parquetSchema:指定需要投遞的數(shù)據(jù)列,必須手動(dòng)配置投遞字段的源表字段、目標(biāo)字段和目標(biāo)字段類(lèi)型。

    您可以選擇任意字段以任意順序、名稱(chēng)寫(xiě)入列存文件,OSS的列存數(shù)據(jù)會(huì)按Schema數(shù)組中的數(shù)據(jù)列先后順序分布。

    重要

    投遞數(shù)據(jù)的字段類(lèi)型必須與數(shù)據(jù)源的字段類(lèi)型匹配,否則會(huì)作為臟數(shù)據(jù)丟棄。字段類(lèi)型映射詳情請(qǐng)參見(jiàn)數(shù)據(jù)格式映射

taskType

投遞任務(wù)的類(lèi)型,包括如下選項(xiàng):

  • INC:表示增量數(shù)據(jù)投遞模式,只同步增量數(shù)據(jù)。

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

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

    其中增量數(shù)據(jù)同步時(shí)可以獲取最新投遞時(shí)間和了解當(dāng)前投遞狀態(tài)。

使用

您可以通過(guò)Java SDKGo SDK實(shí)現(xiàn)數(shù)據(jù)湖投遞功能。此處以Java SDK為例介紹數(shù)據(jù)投遞湖的操作。

以下示例用于為數(shù)據(jù)表創(chuàng)建投遞任務(wù)。

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("請(qǐng)求失敗,詳情:" + 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為可選配置,指定按某一列數(shù)據(jù)的時(shí)間進(jìn)行分區(qū)。如果不設(shè)置此參數(shù),則按數(shù)據(jù)寫(xiě)入表格存儲(chǔ)的時(shí)間進(jìn)行分區(qū)。
            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");
        }
}