Todos os produtos
Search
Central de documentação

Tablestore:Criar um túnel

Última atualização: Aug 01, 2026

Use o Tablestore SDK for Java para criar um túnel do tipo BaseData, Stream ou BaseAndStream em uma tabela de dados.

Pré-requisitos

Descrição do recurso

Chame createTunnel para criar um túnel para uma tabela de dados. Você pode criar vários túneis para a mesma tabela de dados. O tipo de túnel determina os dados a serem consumidos: BaseData consome apenas dados completos; Stream consome apenas dados incrementais; e BaseAndStream consome dados completos e, em seguida, dados incrementais.

Nota

Se o Stream estiver desativado para uma tabela de dados, a criação de um túnel Stream ou BaseAndStream ativa automaticamente o Stream e define o período de retenção de logs incrementais como sete dias.

CreateTunnelResponse createTunnel(CreateTunnelRequest request)
        throws TableStoreException, ClientException

O código de exemplo a seguir cria um túnel BaseData chamado example_tunnel para a tabela de dados 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());

Parâmetros

CreateTunnelRequest contém os seguintes parâmetros:

Nome

Tipo

Descrição

tableName (obrigatório)

String

Nome da tabela de dados.

tunnelName (obrigatório)

String

Nome do túnel.

tunnelType (obrigatório)

TunnelType

Tipo do túnel. BaseData consome apenas dados completos. Stream consome apenas dados incrementais. BaseAndStream consome dados completos e, em seguida, dados incrementais.

streamTunnelConfig (opcional)

StreamTunnelConfig

Configuração do intervalo de dados incrementais para túneis Stream e BaseAndStream. Se você configurar este parâmetro, especifique um intervalo de tempo válido.

streamRecordOptions (opcional)

StreamRecordOptions

Configuração de registros incrementais para túneis Stream e BaseAndStream. Este parâmetro requer o Tablestore SDK for Java 5.17.11 ou posterior.

Intervalo de dados incrementais

streamTunnelConfig é do tipo StreamTunnelConfig e contém os seguintes parâmetros:

Nome

Tipo

Descrição

flag (opcional)

StartOffsetFlag

Posição inicial usada quando startOffset não é especificado. LATEST inicia a partir do horário de criação do túnel. EARLIEST inicia a partir do log incremental mais antigo disponível. Valor padrão: LATEST.

startOffset (opcional)

long

Timestamp inicial dos dados incrementais. Unidade: milissegundos. Intervalo válido: [Hora atual do sistema - Período de retenção do Stream + 5 minutos, hora atual do sistema). Se este parâmetro for especificado, flag não terá efeito.

endOffset (opcional)

long

Timestamp final dos dados incrementais. Unidade: milissegundos. Se ambos os timestamps forem especificados, este parâmetro deve ser maior que startOffset. Se este parâmetro não for especificado, o consumo de dados incrementais continuará.

Nota

O período de retenção do Stream é o período de retenção dos logs incrementais. O valor máximo é sete dias. Você pode definir o período ao ativar o Stream para uma tabela de dados. Não é possível modificar o período após a definição.

Conteúdo do registro incremental

streamRecordOptions é do tipo StreamRecordOptions e contém os seguintes parâmetros:

Nome

Tipo

Descrição

getVersionGeneratorValue (opcional)

boolean

Especifica se os registros incrementais contêm o valor gerado pelo version generator. Valor padrão: false.

getSysColumns (opcional)

boolean

Especifica se os registros incrementais contêm colunas de sistema. Valor padrão: false.

getNewRowInfo (opcional)

boolean

Especifica se os registros incrementais contêm as informações mais recentes da linha. Valor padrão: false.

oldColumnsToGet (opcional)

StreamColumn

Colunas de atributo a retornar da linha original.

newColumnsToGet (opcional)

StreamColumn

Colunas de atributo a retornar da linha mais recente.

Colunas do registro incremental

streamRecordOptions.oldColumnsToGet e streamRecordOptions.newColumnsToGet são do tipo StreamColumn e contêm os seguintes parâmetros:

Nome

Tipo

Descrição

columnType (obrigatório)

StreamColumnType

Modo de seleção de colunas de atributo. SPECIFIED_COLUMN especifica colunas de atributo nomeadas. INPUT_COLUMNS especifica as colunas de atributo gravadas ou atualizadas pela operação. ALL_COLUMNS especifica todas as colunas de atributo.

columnNames (opcional)

List<String>

Nomes das colunas de atributo a retornar quando columnType está definido como SPECIFIED_COLUMN.

Resposta

CreateTunnelResponse contém o seguinte campo de resposta:

Campo

Tipo

Descrição

tunnelId

String

ID do túnel criado. Chame getTunnelId() para obter o ID. O ID é necessário para consumir dados do túnel.

Cenários

Especifique um intervalo de dados incrementais

O código de exemplo a seguir cria um túnel Stream e especifica o intervalo de dados incrementais da última hora.

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());

Configure o conteúdo do registro incremental

O código de exemplo a seguir cria um túnel Stream e configura registros incrementais para retornar o valor do version generator, colunas de sistema, informações da linha mais recente, a coluna de atributo value da linha original e todas as colunas de atributo da linha mais recente.

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());