すべてのプロダクト
Search
ドキュメントセンター

Tablestore:配信タスクの作成

最終更新日:Aug 03, 2026

Tablestore SDK for Java を使用すると、配信タスクを作成して、データテーブルから同一リージョン内の OSS バケットに、完全データ、増分データ、またはその両方を配信できます。

前提条件

開始する前に、次の前提条件が満たされていることを確認してください。

  • Tablestore SDK for Java をインストールし、クライアントを初期化します。データ配信には、バージョン 5.10.3 以降が必要です。最新バージョンのご使用を推奨します。

  • Object Storage Service (OSS) を有効化し、Tablestore インスタンスと同じリージョンに OSS バケットを作成します。詳細については、「OSS の概要」をご参照ください。

  • サービスリンクロール AliyunServiceRoleForOTSDataDelivery を作成し、ロールの ARN を取得します。詳細については、「配信タスクの作成」をご参照ください。

概要

createDeliveryTask を呼び出して配信タスクを作成します。タスクでは、完全データまたは増分データのみを配信することも、最初に完全データを配信してから継続的に増分データを配信することもできます。

public CreateDeliveryTaskResponse createDeliveryTask(CreateDeliveryTaskRequest request)
        throws TableStoreException, ClientException

配信タスクを作成した後、タスクを初期化する必要があります。describeDeliveryTask を呼び出して、配信タスク情報をクエリできます。

次のサンプルでは、完全データと増分データを配信し、Tablestore へのデータ書き込み時間に基づいて日単位の OSS パーティションを作成するタスクを作成します。このサンプルでは、client は初期化済みのクライアントです。プレースホルダーを実際の値に置き換え、pkevent_timeactive 列がそれぞれ String 型、String 型、Boolean 型であることを確認してください。

String tableName = "<TABLE_NAME>";
String taskName = "<TASK_NAME>";

OSSTaskConfig taskConfig = new OSSTaskConfig();
taskConfig.setOssPrefix("delivery/year=$yyyy/month=$MM/day=$dd");
taskConfig.setOssBucket("<OSS_BUCKET>");
taskConfig.setOssEndpoint("<OSS_ENDPOINT>");
taskConfig.setOssStsRole("<ROLE_ARN>");
taskConfig.addParquetSchema(new ParquetSchema("pk", "pk", DataType.UTF8));
taskConfig.addParquetSchema(
        new ParquetSchema("event_time", "event_time", DataType.UTF8));
taskConfig.addParquetSchema(new ParquetSchema("active", "active", DataType.BOOL));

CreateDeliveryTaskRequest request =
        new CreateDeliveryTaskRequest(tableName, taskName, taskConfig);
request.setTaskType(DeliveryTaskType.BASE_INC);

client.createDeliveryTask(request);

パラメーター

配信リクエスト

requestCreateDeliveryTaskRequest 型で、次のパラメーターが含まれます。

名前

説明

tableName (必須)

String

データテーブルの名前。

taskName (必須)

String

配信タスクの名前。名前には、小文字、数字、ハイフン (-)、アンダースコア (_) のみを使用できます。先頭と末尾は小文字または数字である必要があり、長さは 3~16 文字です。

taskConfig (必須)

OSSTaskConfig

OSS 配信設定。

taskType (必須)

DeliveryTaskType

配信タスクのタイプ。有効な値: BASE (完全データを 1 回配信)、INC (増分データのみを配信)、BASE_INC (完全データを配信後、継続的に増分データを配信)。

OSS 配信設定

request.taskConfigOSSTaskConfig 型で、次のパラメーターが含まれます。

名前

説明

ossPrefix (必須)

String

OSS バケット内のディレクトリプレフィックス。$yyyy$MM$dd$HH$mm の時間変数を使用できます。プレフィックスに時間変数が含まれている場合、書き込み時間に基づいて OSS パーティションが作成されます。eventTimeColumn が指定されている場合は、代わりにイベント時間が使用されます。プレフィックスに時間変数が含まれていない場合、すべてのファイルが固定プレフィックスに書き込まれます。

ossBucket (必須)

String

OSS バケットの名前。バケットは Tablestore インスタンスと同じリージョンにある必要があります。

ossEndpoint (必須)

String

OSS バケットが配置されているリージョンのエンドポイント。

ossStsRole (必須)

String

AliyunServiceRoleForOTSDataDelivery サービスリンクロールの ARN。

parquetSchema (必須)

List<ParquetSchema>

配信するフィールド。フィールドを選択し、OSS での名前と順序をカスタマイズできます。要素の順序によって、Parquet ファイル内のフィールドの順序が決まります。addParquetSchema を呼び出して、フィールドを 1 つずつ追加します。

eventTimeColumn (オプション)

EventColumn

イベント時間列。このパラメーターを指定すると、ossPrefix の時間変数はこの列の時間を使用します。それ以外の場合は、データが Tablestore に書き込まれた時間が使用されます。

format (オプション)

OSSFileFormat

OSS ファイル形式。デフォルト値であり、唯一サポートされている値は Parquet です。

timeFormatter (オプション)

TimeFormatter

予約済みのパーティションフォーマットパラメーター。現在の SDK はリクエストにこのパラメーターを含めません。設定しないでください。

配信される列

request.taskConfig.parquetSchema[] の各要素は ParquetSchema 型で、次のパラメーターが含まれます。

名前

説明

columnName (必須)

String

Tablestore データテーブル内のソースフィールドの名前。

ossColumnName (必須)

String

フィールドが OSS に配信された後のフィールドの名前。

type (必須)

DataType

Parquet ファイル内のフィールドの送信先タイプ。このタイプは、ソースフィールドのデータの型と一致する必要があります。一致しない場合、フィールド値はダーティデータとして破棄されます。詳細については、「データ型のマッピング」をご参照ください。

encode (オプション)

OSSFileEncoding

Parquet エンコーディング。デフォルト値: PLAIN。現在サポートされているすべてのフィールドタイプをサポートします。

typeExtend (オプション)

String

予約済みの Parquet 拡張タイプパラメーター。このパラメーターはサポートされていません。設定しないでください。

イベント時間列

request.taskConfig.eventTimeColumnEventColumn 型で、次のパラメーターが含まれます。

名前

説明

columnName (必須)

String

イベント時間として使用されるソースフィールドの名前。

timeFormat (必須)

EventTimeFormat

イベント時間のフォーマット。有効な値: RFC822RFC850RFC1123RFC3339Unix。ソースフィールドの値は、選択したフォーマットに準拠している必要があります。

イベント時間によるデータパーティション

event_time 列に基づいて OSS パーティションを作成するには、リクエストを作成する前に taskConfig でイベント時間列を設定します。次のサンプルでは、列の値は RFC 3339 に準拠している必要があります。

EventColumn eventColumn =
        new EventColumn("event_time", EventTimeFormat.RFC3339);
taskConfig.setEventTimeColumn(eventColumn);