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

Tablestore:オフラインデータのバッチ書き込み

最終更新日:Dec 28, 2024

Tablestoreは、ビッグデータシナリオでオフラインデータをデータテーブルにバッチ書き込みするためのBulkImport操作を提供します。データテーブルにデータを書き込むには、完全なプライマリキー情報と、追加、削除、または変更する属性列を指定する必要があります。

前提条件

パラメーター

パラメーター

説明

tableName

データテーブルの名前。

rowChanges

RowChangesのリスト。各RowChangeは、データテーブルに書き込む行を指定します。

次のサンプルコードは、オフラインデータをデータテーブルにバッチ書き込みする方法の例を示しています。

private static void bulkImport(SyncClient client, String start, String end){
    // bulkImportRequestを作成します。
    // データテーブルの名前を指定します。
    String tableName = "<TABLE_NAME>"; 
    BulkImportRequest bulkImportRequest = new BulkImportRequest(tableName);

    // データテーブルに書き込むデータを指定するために、rowChangesを作成します。
    List<RowChange> rowChanges = new ArrayList<RowChange>();
    for (Integer i = Integer.valueOf(start); i <= Integer.valueOf(end); i++){
        PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
        primaryKeyBuilder.addPrimaryKeyColumn("pk", PrimaryKeyValue.fromString(String.valueOf(i)));
        PrimaryKey primaryKey = primaryKeyBuilder.build();
        RowPutChange rowChange = new RowPutChange(tableName,primaryKey);
        rowChange.addColumn(new Column("DC1", ColumnValue.fromString(i.toString())));
        rowChange.addColumn(new Column("DC2", ColumnValue.fromString(i.toString())));
        rowChange.addColumn(new Column("DC3", ColumnValue.fromString(i.toString())));
        rowChanges.add(rowChange);
    }

    bulkImportRequest.addRowChanges(rowChanges);
    // bulkImportResponseを取得します。
    BulkImportResponse bulkImportResponse = client.bulkImport(bulkImportRequest);
  
    List<BulkImportResponse.RowResult> succeedRows = new ArrayList<BulkImportResponse.RowResult>();
    List<BulkImportResponse.RowResult> failedRows = new ArrayList<BulkImportResponse.RowResult>();
    bulkImportResponse.getResult(succeedRows, failedRows);

    for (int i = 0; i < succeedRows.size(); i++){
        System.out.println(succeedRows.get(i).getConsumedCapacity().getCapacityDataSize().jsonize());
    }
    for (int i = 0; i < failedRows.size(); i++){
        System.out.println(failedRows.get(i).getError().getCode());
        System.out.println(failedRows.get(i).getError().getMessage());
    }
}

FAQ

関連情報

  • API操作の詳細については、BulkImportを参照してください。

  • オフラインデータをバッチインポートするための操作の呼び出し方法の詳細については、BulkImportRequest.javaおよびBulkImportResponse.javaを参照してください。

  • データテーブルにデータを書き込んだ後、ビジネス要件に基づいてテーブル内のデータを読み取ったり削除したりできます。

    • データテーブル内のデータを読み取る場合は、オフラインデータをバッチ読み取りしたり、基本データを読み取ったりできます。詳細については、オフラインデータのバッチ読み取りおよびデータの読み取りを参照してください。

    • データテーブル内のデータを削除する場合は、DeleteRowまたはBatchWriteRow操作を呼び出すことができます。詳細については、データの削除を参照してください。

  • 次の方法を使用して、データテーブルにデータを書き込むこともできます。

    • PutRow、UpdateRow、またはBatchWriteRow操作を呼び出します。詳細については、データの書き込みを参照してください。

    • DataWorksやDataXなどのツールを使用して、他のデータソースからTablestoreにデータを同期します。詳細については、データ統合を参照してください。