Este tema describe las tablas de registros en Fluss.
Términos
Una tabla de registros es un tipo de tabla en Fluss que almacena los datos en el orden en que se escriben. Las tablas de registros solo admiten operaciones de anexado y no son compatibles con operaciones de actualización o eliminación. Por lo general, se utilizan para almacenar datos de registro de alto rendimiento, de forma similar a un caso de uso típico de Apache Kafka.
Para crear una tabla de registros, omita la cláusula PRIMARY KEY en una sentencia CREATE TABLE. Por ejemplo, la siguiente sentencia de Flink SQL crea una tabla de registros con 3 buckets.
CREATE TABLE log_table (
order_id BIGINT,
item_id BIGINT,
amount INT,
address STRING
)
WITH ('bucket.num' = '3')
;
El parámetro 'bucket.num' debe ser un número entero mayor que 0. Si no especifica este parámetro, el sistema utiliza el valor predeterminado del clúster de 1 para la cantidad de buckets.
Políticas de asignación de buckets
La segmentación en buckets es la unidad fundamental para la paralelización y la escalabilidad en Fluss. Las tablas se dividen en varios buckets, y cada bucket representa la unidad más pequeña para las operaciones de lectura y escritura. Cuando escribe un registro en una tabla de registros, Fluss aplica una política de asignación para asignar dicho registro a un bucket específico. Fluss proporciona a continuación tres políticas de asignación de buckets:
-
Política sticky (predeterminada)
Escribe registros de manera continua en un bucket seleccionado aleatoriamente hasta que este alcanza su límite de capacidad configurado, como un límite de tamaño o de cantidad de registros.
-
Política round-robin
Selecciona un bucket destino de forma rotatoria antes de escribir cada registro.
-
Segmentación basada en hash
Asigna los registros según el valor de hash de las claves de bucket especificadas.
Para obtener más información, consulte Data bucketing.
Política de almacenamiento local
Configuración de parámetros: Use el parámetro
table.log.ttlpara definir el periodo de retención de los datos de registro locales.Mecanismo de niveles: El sistema supervisa continuamente el ciclo de vida de los datos. Los datos fríos que superan el umbral de tiempo de vida (TTL) se transfieren automáticamente del disco local y se archivan en el almacenamiento remoto. Este mecanismo garantiza que solo los datos activos y calientes se almacenen en el disco local, lo que permite controlar eficazmente la sobrecarga de almacenamiento.
Consumo de datos
Las tablas de registros en Fluss admiten el consumo de datos en tiempo real y mantienen estrictamente el orden de escritura de los datos dentro de cada bucket. Las reglas son a continuación:
Para dos registros en el mismo bucket de una misma tabla, el registro escrito primero se consume primero.
Para dos registros en buckets diferentes de la misma tabla, no se garantiza el orden de consumo, ya que distintos buckets pueden procesarse en paralelo mediante diferentes tareas de consumo de datos.