全部產品
Search
文件中心

Tablestore:離線批量寫入資料

更新時間:Jun 30, 2024

Table Store提供了BulkImport介面用於在巨量資料情境下批量寫入資料到資料表。當要寫入資料到資料表時,您需要指定完整主鍵以及要增刪改的屬性列。

前提條件

參數

參數

描述

tableName

資料表名稱。

rowChanges

包含多個RowChange的列表,每個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());
    }
}

常見問題

相關文檔

  • 關於API的更多資訊,請參見BulkImport

  • 關於功能介面實現的更多資訊,請參見BulkImportRequest.javaBulkImportResponse.java

  • 寫入資料後,您可以根據需要讀取或者刪除表中資料。

    • 如果讀取資料,您可以通過離線批量讀取資料、基礎資料讀取等方式實現。更多資訊,請參見離線批量讀取資料讀取資料

    • 如果需要刪除資料,您可以通過調用DeleteRow或BatchWriteRow介面實現,更多資訊,請參見刪除資料

  • 您還可以通過如下方式寫入資料到資料表。

    • 通過PutRow、UpdateRow和BatchWriteRow介面寫入資料。更多資訊,請參見寫入資料

    • 通過DataWorks、DataX等工具同步其他資料來源的資料到Table Store資料表中。更多資訊,請參見Data Integration服務