Todos los productos
Search
Centro de documentos

Tablestore:Create a tunnel

Última actualización: Sep 03, 2026

Utilice Tablestore SDK for Java para crear un túnel de tipo BaseData, Stream o BaseAndStream en una tabla de datos.

Requisitos previos

Descripción de la función

Llame a createTunnel para crear un túnel en una tabla de datos. Es posible crear varios túneles para la misma tabla. El tipo de túnel determina los datos que se consumirán: BaseData consume únicamente datos completos, Stream consume solo datos incrementales y BaseAndStream consume primero los datos completos y después los incrementales.

Nota

Si Stream está deshabilitado en una tabla de datos, al crear un túnel de tipo Stream o BaseAndStream se habilita automáticamente Stream y se establece el periodo de retención de los registros incrementales en siete días.

CreateTunnelResponse createTunnel(CreateTunnelRequest request)
        throws TableStoreException, ClientException

El siguiente código de ejemplo crea un túnel de tipo BaseData llamado example_tunnel para la tabla de datos 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 contiene los siguientes parámetros:

Nombre

Tipo

Descripción

tableName (obligatorio)

String

El nombre de la tabla de datos.

tunnelName (obligatorio)

String

El nombre del túnel.

tunnelType (obligatorio)

TunnelType

El tipo de túnel. BaseData consume únicamente datos completos. Stream consume solo datos incrementales. BaseAndStream consume primero los datos completos y después los incrementales.

streamTunnelConfig (opcional)

StreamTunnelConfig

La configuración del rango de datos incrementales para túneles de tipo Stream y BaseAndStream. Si configura este parámetro, especifique un rango de tiempo válido.

streamRecordOptions (opcional)

StreamRecordOptions

La configuración de registros incrementales para túneles de tipo Stream y BaseAndStream. Este parámetro requiere Tablestore SDK for Java 5.17.11 o posterior.

Rango de datos incrementales

streamTunnelConfig es de tipo StreamTunnelConfig y contiene los siguientes parámetros:

Nombre

Tipo

Descripción

flag (opcional)

StartOffsetFlag

La posición inicial que se utiliza cuando no se especifica startOffset. LATEST comienza desde el momento de creación del túnel. EARLIEST comienza desde el registro incremental más antiguo disponible. Valor predeterminado: LATEST.

startOffset (opcional)

long

La marca de tiempo inicial de los datos incrementales. Unidad: milisegundos. Rango válido: [Hora actual del sistema - Periodo de retención de Stream + 5 minutos, hora actual del sistema). Si se especifica este parámetro, flag no surte efecto.

endOffset (opcional)

long

La marca de tiempo final de los datos incrementales. Unidad: milisegundos. Si se especifican ambas marcas de tiempo, este valor debe ser mayor que startOffset. Si no se especifica este parámetro, se continúa consumiendo los datos incrementales.

Nota

El periodo de retención de Stream corresponde al periodo de retención de los registros incrementales. El valor máximo es de siete días. Este periodo se puede establecer al habilitar Stream en una tabla de datos, pero no se puede modificar una vez configurado.

Contenido de registros incrementales

streamRecordOptions es de tipo StreamRecordOptions y contiene los siguientes parámetros:

Nombre

Tipo

Descripción

getVersionGeneratorValue (opcional)

boolean

Indica si los registros incrementales incluyen el valor generado por el generador de versiones. Valor predeterminado: false.

getSysColumns (opcional)

boolean

Indica si los registros incrementales incluyen columnas del sistema. Valor predeterminado: false.

getNewRowInfo (opcional)

boolean

Indica si los registros incrementales incluyen la información más reciente de la fila. Valor predeterminado: false.

oldColumnsToGet (opcional)

StreamColumn

Las columnas de atributos que se devolverán de la fila original.

newColumnsToGet (opcional)

StreamColumn

Las columnas de atributos que se devolverán de la fila más reciente.

Columnas de registros incrementales

streamRecordOptions.oldColumnsToGet y streamRecordOptions.newColumnsToGet son de tipo StreamColumn y contienen los siguientes parámetros:

Nombre

Tipo

Descripción

columnType (obligatorio)

StreamColumnType

El modo de selección de columnas de atributos. SPECIFIED_COLUMN selecciona columnas de atributos específicas por nombre. INPUT_COLUMNS selecciona las columnas de atributos escritas o actualizadas por la operación. ALL_COLUMNS selecciona todas las columnas de atributos.

columnNames (opcional)

List<String>

Los nombres de las columnas de atributos que se devolverán cuando columnType se establece en SPECIFIED_COLUMN.

Respuesta

CreateTunnelResponse contiene el siguiente campo de respuesta:

Campo

Tipo

Descripción

tunnelId

String

El ID del túnel creado. Llame a getTunnelId() para obtenerlo. Este ID es necesario para consumir los datos del túnel.

Escenarios

Especificar un rango de datos incrementales

El siguiente código de ejemplo crea un túnel de tipo Stream y especifica un rango de datos incrementales correspondiente a la ú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());

Configurar el contenido de registros incrementales

El siguiente código de ejemplo crea un túnel de tipo Stream y configura los registros incrementales para que devuelvan el valor del generador de versiones, las columnas del sistema, la información más reciente de la fila, la columna de atributo value de la fila original y todas las columnas de atributos de la fila más reciente.

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