Gunakan Tablestore SDK for Java untuk membuat saluran data bertipe BaseData, Stream, atau BaseAndStream pada tabel data.
Prasyarat
Deskripsi fitur
Panggil createTunnel untuk membuat saluran data pada tabel data. Anda dapat membuat beberapa saluran data pada tabel yang sama. Tipe saluran data menentukan jenis data yang dikonsumsi: BaseData hanya mengonsumsi data lengkap, Stream hanya mengonsumsi data inkremental, dan BaseAndStream mengonsumsi data lengkap terlebih dahulu, diikuti oleh data inkremental.
Jika Stream dinonaktifkan pada tabel data, pembuatan saluran data bertipe Stream atau BaseAndStream akan secara otomatis mengaktifkan Stream dan mengatur periode retensi log inkremental menjadi tujuh hari.
CreateTunnelResponse createTunnel(CreateTunnelRequest request)
throws TableStoreException, ClientException
Kode contoh berikut membuat saluran data bertipe BaseData bernama example_tunnel pada tabel data example_table.
String tableName = "example_table";
String tunnelName = "example_tunnel";
CreateTunnelRequest request =
new CreateTunnelRequest(
tableName, tunnelName, TunnelType.BaseData);
CreateTunnelResponse response = tunnelClient.createTunnel(request);
System.out.println("TunnelId: " + response.getTunnelId());
Parameter
CreateTunnelRequest mencakup parameter berikut:
|
Nama |
Tipe |
Deskripsi |
|
tableName (wajib) |
|
Nama tabel data. |
|
tunnelName (wajib) |
|
Nama saluran data. |
|
tunnelType (wajib) |
|
Tipe saluran data. |
|
streamTunnelConfig (opsional) |
|
Konfigurasi rentang data inkremental untuk saluran data tipe |
|
streamRecordOptions (opsional) |
|
Konfigurasi catatan inkremental untuk saluran data tipe |
Rentang data inkremental
streamTunnelConfig bertipe StreamTunnelConfig dan mencakup parameter berikut:
|
Nama |
Tipe |
Deskripsi |
|
flag (opsional) |
|
Posisi awal yang digunakan ketika |
|
startOffset (opsional) |
|
Timestamp awal data inkremental. Satuan: milidetik. Rentang valid: [Waktu sistem saat ini – periode retensi Stream + 5 menit, waktu sistem saat ini). Jika parameter ini ditentukan, |
|
endOffset (opsional) |
|
Timestamp akhir data inkremental. Satuan: milidetik. Jika kedua timestamp ditentukan, parameter ini harus lebih besar dari |
Periode retensi Stream adalah periode retensi log inkremental. Nilai maksimumnya adalah tujuh hari. Anda dapat mengatur periode ini saat mengaktifkan Stream pada tabel data, namun tidak dapat diubah setelah ditetapkan.
Konten catatan inkremental
streamRecordOptions bertipe StreamRecordOptions dan mencakup parameter berikut:
|
Nama |
Tipe |
Deskripsi |
|
getVersionGeneratorValue (opsional) |
|
Menentukan apakah catatan inkremental berisi nilai yang dihasilkan oleh generator versi. Nilai default: |
|
getSysColumns (opsional) |
|
Menentukan apakah catatan inkremental berisi kolom sistem. Nilai default: |
|
getNewRowInfo (opsional) |
|
Menentukan apakah catatan inkremental berisi informasi baris terbaru. Nilai default: |
|
oldColumnsToGet (opsional) |
|
Kolom atribut yang dikembalikan dari baris asli. |
|
newColumnsToGet (opsional) |
|
Kolom atribut yang dikembalikan dari baris terbaru. |
Kolom catatan inkremental
streamRecordOptions.oldColumnsToGet dan streamRecordOptions.newColumnsToGet bertipe StreamColumn dan mencakup parameter berikut:
|
Nama |
Tipe |
Deskripsi |
|
columnType (wajib) |
|
Mode pemilihan kolom atribut. |
|
columnNames (opsional) |
|
Nama kolom atribut yang dikembalikan ketika |
Tanggapan
CreateTunnelResponse mencakup bidang tanggapan berikut:
|
Bidang |
Type |
Deskripsi |
|
tunnelId |
|
ID saluran data yang dibuat. Panggil |
Skenario
Tentukan rentang data inkremental
Kode contoh berikut membuat saluran data bertipe Stream dan menentukan rentang data inkremental selama satu jam terakhir.
long endTime = System.currentTimeMillis() - 1_000L;
long startTime = endTime - 60 * 60 * 1000L;
StreamTunnelConfig streamConfig =
new StreamTunnelConfig(startTime, endTime);
CreateTunnelRequest request =
new CreateTunnelRequest(
"example_table",
"example_stream_tunnel",
TunnelType.Stream);
request.setStreamTunnelConfig(streamConfig);
CreateTunnelResponse response = tunnelClient.createTunnel(request);
System.out.println("TunnelId: " + response.getTunnelId());
Konfigurasikan konten catatan inkremental
Kode contoh berikut membuat saluran data bertipe Stream dan mengonfigurasi catatan inkremental agar mengembalikan nilai generator versi, kolom sistem, informasi baris terbaru, kolom atribut value dari baris asli, serta semua kolom atribut dari baris terbaru.
StreamColumn oldColumns =
new StreamColumn(StreamColumnType.SPECIFIED_COLUMN);
oldColumns.addColumnName("value");
StreamRecordOptions recordOptions = new StreamRecordOptions();
recordOptions.setGetVersionGeneratorValue(true);
recordOptions.setGetSysColumns(true);
recordOptions.setGetNewRowInfo(true);
recordOptions.setOldColumnsToGet(oldColumns);
recordOptions.setNewColumnsToGet(
new StreamColumn(StreamColumnType.ALL_COLUMNS));
CreateTunnelRequest request =
new CreateTunnelRequest(
"example_table", "example_stream_tunnel", TunnelType.Stream);
request.setStreamRecordOptions(recordOptions);
CreateTunnelResponse response = tunnelClient.createTunnel(request);
System.out.println("TunnelId: " + response.getTunnelId());