Tablestore SDK for Java kullanarak bir veri tablosu için BaseData, Stream veya BaseAndStream türünde tünel oluşturun.
Önkoşullar
Özellik açıklaması
Bir veri tablosu için tünel oluşturmak üzere createTunnel yöntemini çağırın. Aynı veri tablosu için birden çok tünel oluşturabilirsiniz. Tünel türü, tüketilecek verileri belirler: BaseData yalnızca tam verileri tüketir, Stream yalnızca artımlı verileri tüketir ve BaseAndStream önce tam verileri ardından artımlı verileri tüketir.
Bir veri tablosu için Stream özelliği devre dışı bırakılmışsa, Stream veya BaseAndStream tüneli oluşturduğunuzda sistem Stream özelliğini otomatik olarak etkinleştirir ve artımlı günlüklerin saklama süresini yedi gün olarak ayarlar.
CreateTunnelResponse createTunnel(CreateTunnelRequest request)
throws TableStoreException, ClientException
Aşağıdaki örnek kod, example_table veri tablosu için example_tunnel adlı bir BaseData tüneli oluşturur.
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());
Parametreler
CreateTunnelRequest aşağıdaki parametreleri içerir:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Artımlı veri aralığı
streamTunnelConfig parametresi StreamTunnelConfig türündedir ve aşağıdaki alanları içerir:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Stream saklama süresi, artımlı günlüklerin saklandığı süredir. Maksimum değer yedi gündür. Bir veri tablosu için Stream özelliğini etkinleştirirken bu süreyi ayarlayabilirsiniz. Ayarlandıktan sonra bu süre değiştirilemez.
Artımlı kayıt içeriği
streamRecordOptions parametresi StreamRecordOptions türündedir ve aşağıdaki alanları içerir:
|
|
|
|
|
|
|
Artımlı kayıtların sürüm üreteci tarafından oluşturulan değeri içerip içermeyeceğini belirtir. Varsayılan değer: |
|
|
|
Artımlı kayıtların sistem sütunlarını içerip içermeyeceğini belirtir. Varsayılan değer: |
|
|
|
Artımlı kayıtların en son satır bilgilerini içerip içermeyeceğini belirtir. Varsayılan değer: |
|
|
|
Orijinal satırdan döndürülecek öznitelik sütunları. |
|
|
|
En son satırdan döndürülecek öznitelik sütunları. |
Artımlı kayıt sütunları
streamRecordOptions.oldColumnsToGet ve streamRecordOptions.newColumnsToGet parametreleri StreamColumn türündedir ve aşağıdaki alanları içerir:
|
|
|
|
|
|
|
Öznitelik sütunu seçim modu. |
|
|
|
|
Yanıt
CreateTunnelResponse aşağıdaki yanıt alanını içerir:
|
|
|
|
|
|
|
Oluşturulan tünelin kimliği. Kimliği almak için |
Senaryolar
Artımlı veri aralığı belirtme
Aşağıdaki örnek kod bir Stream tüneli oluşturur ve son bir saatin artımlı veri aralığını belirtir.
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());
Artımlı kayıt içeriğini yapılandırma
Aşağıdaki örnek kod bir Stream tüneli oluşturur. Artımlı kayıtların sürüm üreteci değerini, sistem sütunlarını, en son satır bilgilerini, orijinal satırdaki value öznitelik sütununu ve en son satırdaki tüm öznitelik sütunlarını döndürecek şekilde yapılandırır.
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());