Cuando su canalización de datos conecta bases de datos, sistemas de registros o colas de mensajes con MaxCompute, las cargas por lotes introducen latencia que impide consultar los datos recientes. La escritura incremental en tiempo casi real resuelve este problema al escribir continuamente las filas entrantes en una tabla delta cada minuto, de modo que los datos confirmados se pueden consultar de inmediato sin esperar un ciclo de carga completa.
Elija un modo de escritura
|
Write mode |
Latency |
Use when |
|
Escritura incremental en tiempo casi real |
Nivel de minuto |
Flujos de datos continuos; requiere baja latencia y tolerancia a fallos |
|
Escritura de datos completos |
Mayor |
Cargas por lotes periódicas; todo el conjunto de datos se reemplaza a la vez |
Funcionamiento
MaxCompute proporciona un Flink connector plug-in de código abierto que se integra con Data Integration de DataWorks y otras herramientas de importación de datos para admitir escrituras incrementales en tiempo casi real.

La figura anterior muestra el procesamiento de datos empresariales.
El flujo de datos funciona de la siguiente manera:
Una herramienta de importación de datos utiliza el cliente SDK del servicio MaxCompute Tunnel para escribir datos de forma concurrente en el servidor Tunnel cada minuto.
El servidor Tunnel distribuye las escrituras entre varios nodos worker, los cuales escriben datos en paralelo en los archivos de datos de cada bucket.
Cuando la herramienta de importación llama a la interfaz commit, todos los datos escritos hasta ese momento se confirman atómicamente en la tabla delta y están disponibles para consulta de inmediato.
Control de concurrencia
Establezca el parámetro write.bucket.num para controlar la concurrencia de escritura. Un mayor número de buckets aumenta el rendimiento de escritura. Para obtener más información sobre cómo los buckets afectan el rendimiento, consulte Table data format.
Operaciones compatibles
La interfaz de escritura del SDK de Tunnel admite las siguientes operaciones:
|
Operation |
Description |
|
UPSERT |
Insertar una fila nueva o actualizar una fila existente |
|
DELETE |
Eliminar una fila de la tabla delta |
Semántica de confirmación y tolerancia a fallos
Cada llamada a la interfaz commit representa una confirmación atómica de todos los datos escritos antes de la llamada. Los datos confirmados cumplen con el aislamiento de instantánea de lectura y escritura.
En caso de éxito: Los datos confirmados se pueden consultar de inmediato y cumplen con el aislamiento de instantánea de lectura y escritura.
En caso de fallo: Si la llamada falla, reintente la escritura de los datos. Si el fallo no se debe a un error irrecuperable, como corrupción de datos, el reintento podría tener éxito y no será necesario volver a escribir los datos. De lo contrario, vuelva a escribir y confirme los datos nuevamente.
|
Failure type |
Recovery action |
|
No irrecuperable (por ejemplo, no causado por corrupción de datos) |
Reintente la confirmación directamente; no es necesario volver a escribir los datos |
|
Irrecuperable (por ejemplo, corrupción de datos o error permanente) |
Vuelva a escribir los datos y confírmelos nuevamente |
Pasos siguientes
Table data format: conozca cómo los buckets afectan el rendimiento de escritura
Complemento de conector Flink: configure el conector de código abierto para escrituras incrementales