全部产品
Search
文档中心

Tablestore:Buat terowongan

更新时间:Jul 02, 2025

Untuk mengonsumsi data dalam tabel secara real-time, Anda dapat memanggil operasi CreateTunnel guna membuat terowongan untuk tabel tersebut. Beberapa terowongan dapat dibuat untuk satu tabel. Saat membuat terowongan, tentukan nama tabel, nama terowongan, dan tipe terowongan.

Prasyarat

  • Instance TunnelClient telah diinisialisasi.

  • Tabel telah dibuat. Untuk informasi lebih lanjut, lihat Buat Tabel.

Parameter

Parameter permintaan

Parameter

Deskripsi

TableName

Nama tabel data.

TunnelName

Nama terowongan.

TunnelType

Tipe terowongan. Nilai yang valid:

  • BaseData: Hanya data penuh yang dikonsumsi dan diproses.

  • Stream: Hanya data tambahan yang dikonsumsi dan diproses.

  • BaseAndStream: Setelah data penuh dikonsumsi dan diproses, data tambahan dikonsumsi dan diproses.

Jika Anda menetapkan parameter ini ke Stream atau BaseAndStream, sistem menganggap data yang ditulis ke tabel data setelah terowongan dibuat sebagai tambahan. Jika Anda ingin mengonsumsi data tambahan yang dihasilkan setelah titik waktu tertentu, Anda harus mengonfigurasi parameter startTime untuk data tambahan tersebut.

  • Nilai valid untuk parameter startTime: [Waktu sistem saat ini - Masa berlaku Stream + 5 menit, Waktu sistem saat ini]. Unit: milidetik.

    Catatan

    Masa berlaku Stream adalah periode validitas log tambahan dalam milidetik. Masa berlaku maksimum log tambahan adalah tujuh hari. Anda dapat menentukan masa berlaku Stream saat mengaktifkan Stream untuk tabel data. Anda tidak dapat mengubah masa berlaku Stream setelah menetapkannya.

  • Anda juga dapat mengonfigurasi parameter endTime untuk data tambahan yang ingin Anda konsumsi. Nilai parameter endTime harus lebih besar dari nilai parameter startTime.

Parameter respons

Parameter

Deskripsi

TunnelId

ID terowongan.

ResponseInfo

Bidang lain yang dikembalikan dalam permintaan.

RequestId

ID permintaan.

Contoh

Buat terowongan yang digunakan untuk mengonsumsi data penuh

Kode berikut menunjukkan cara membuat terowongan tipe BaseData:

// Anda dapat membuat terowongan tipe TunnelType.BaseData, TunnelType.Stream, atau TunnelType.BaseAndStream.
// Dalam contoh ini, terowongan tipe BaseData dibuat. Untuk membuat terowongan tipe lainnya, atur parameter TunnelType dalam CreateTunnelRequest ke tipe yang diperlukan.
private static void createTunnel(TunnelClient client, String tableName, String tunnelName) {
    CreateTunnelRequest request = new CreateTunnelRequest(tableName, tunnelName, TunnelType.BaseData);
    CreateTunnelResponse resp = client.createTunnel(request);
    System.out.println("RequestId: " + resp.getRequestId());
    System.out.println("TunnelId: " + resp.getTunnelId());
}

Buat terowongan yang digunakan untuk mengonsumsi data tambahan atau diferensial

Kode berikut menunjukkan cara membuat terowongan tipe Stream atau BaseAndStream serta menentukan rentang waktu data tambahan yang ingin dikonsumsi:

// Buat terowongan yang digunakan untuk mengonsumsi data tambahan atau diferensial dan tentukan timestamp awal dan akhir untuk rentang waktu data tambahan yang ingin Anda konsumsi. Konfigurasi yang ditentukan oleh StreamTunnelConfig tidak berlaku untuk terowongan tipe BaseData.
private static void createStreamTunnelByOffset(TunnelClient client,String tableName,String tunnelName, long startTime, long endTime){
    CreateTunnelRequest createTunnelRequest = new CreateTunnelRequest(tableName,tunnelName, TunnelType.Stream);// Buat terowongan tipe Stream.
    //CreateTunnelRequest createTunnelRequest = new CreateTunnelRequest(tableName,tunnelName, TunnelType.BaseAndStream);// Buat terowongan tipe BaseAndStream.
    StreamTunnelConfig streamTunnelConfig = new StreamTunnelConfig();  
    /*
        Tentukan timestamp awal dan akhir untuk membaca data tambahan. Unit: milidetik. Nilai valid: [CurrentSystemTime - StreamExpiration + 5 menit, CurrentSystemTime).
        CurrentSystemTime adalah timestamp waktu sistem saat ini akurat hingga milidetik. StreamExpiration adalah timestamp periode validitas log tambahan akurat hingga milidetik. Masa berlaku maksimum log tambahan adalah tujuh hari. Anda dapat menentukan masa berlaku Stream saat mengaktifkan Stream untuk tabel data.
        Nilai endTime harus lebih besar dari nilai startTime.
     */
    streamTunnelConfig.setStartOffset(startTime);
    streamTunnelConfig.setEndOffset(endTime);
    createTunnelRequest.setStreamTunnelConfig(streamTunnelConfig);
    CreateTunnelResponse resp = client.createTunnel(createTunnelRequest);
    System.out.println("RequestId: " + resp.getRequestId());
    System.out.println("TunnelId: " + resp.getTunnelId());
}

FAQ

Apa yang harus dilakukan jika pesan kesalahan "OTSTrimmedDataAccess Requested stream data is already trimmed or does not exist" muncul saat menggunakan Tunnel Service untuk mengonsumsi data?

Referensi