Lindorm Streams, proporcionado por ApsaraDB for Lindorm, publica datos incrementales de ApsaraDB for HBase Performance-enhanced en topics de Message Queue for Apache Kafka. Suscríbase a estos topics para consumir cambios por fila en tiempo real en sus sistemas posteriores.
Lindorm Streams admite:
Funcionamiento
Lindorm Streams publica cada operación de fila como un mensaje en un topic de Kafka. Cada mensaje puede contener dos versiones de la fila afectada: el estado antes de la operación y el estado después de esta.
Semántica de entrega
Garantía de orden
Las operaciones sobre la misma fila se publican en el orden en que ocurren, por lo que los consumidores pueden reproducirlas en la misma secuencia.
Entrega al menos una vez
Lindorm Streams garantiza la entrega al menos una vez. Los mensajes pueden entregarse más de una vez según su directiva de reintentos; por ello, diseñe su consumidor para gestionar mensajes duplicados.
Para utilizar la semántica exactamente una vez, envíe un ticket.
Formato de mensaje
Cada mensaje es un objeto JSON con la siguiente estructura:
{
"op": "<opType>",
"table": "<tableName>",
"ts": "<defaultVersion>",
"keyOnly": "<keyOnly>",
"data": [
{
"type": "<type>",
"name": "<name>",
"ts": "<version>",
"value": "<value>"
}
]
}
La tabla a continuación describe los campos de nivel superior.
|
Field |
Description |
|
|
El tipo de operación. Valores válidos: |
|
|
El nombre de la tabla. |
|
|
La versión predeterminada. Se utiliza cuando la fila no contiene la clave |
|
|
Indica si solo se incluye la clave principal en el mensaje. |
|
|
Un arreglo de entradas de columna. Cada entrada contiene los campos descritos a continuación. |
La tabla a continuación describe los campos de cada entrada de data.
|
Field |
Description |
|
|
El tipo de dato de la columna. |
|
|
El nombre de la columna. |
|
|
La versión de los datos. Si está en blanco, se utiliza el valor de |
|
|
El valor de la columna. Si está en blanco, el valor real en la tabla es |
Parámetros de mensaje
Utilice los siguientes parámetros para controlar qué datos se incluyen en cada mensaje.
|
Parameter |
Type |
Required |
Default |
Description |
|
|
boolean |
No |
false |
Indica si se sincronizan únicamente las claves principales. |
|
|
boolean |
No |
false |
Indica si una clave principal se envía solo una vez por lote. |