Plataforma de lago de datos de flujo Apache Paimon (6) Datos de inserción DML integrados con Spark

4.4 Insertar datos

La declaración INSERT inserta nuevas filas en una tabla. Las filas insertadas se pueden especificar mediante expresiones de valor o resultados de consultas, de acuerdo con la sintaxis SQL estándar.

INSERT INTO table_identifier [ part_spec ] [ column_list ] { value_expr | consulta }

part_spec

Opcional, una lista de pares clave-valor para la partición especificada, separados por comas. Se pueden usar literales de tipo (por ejemplo, date'2019-01-02').

Sintaxis: PARTICIÓN (nombre de columna de partición = valor de columna de partición [ , ... ] )

lista_de_columnas

Opcionalmente, especifique una lista de campos separados por comas.

Sintaxis: (nombre_columna1 [, nombre_columna2, ...])

Todas las columnas especificadas deben existir en la tabla y no ser duplicados entre sí. Incluye todas las columnas excepto las columnas de partición estática. La lista de campos debe tener exactamente el mismo tamaño que los datos en la cláusula o consulta VALUES.

value_expr

Especifica el valor a insertar. Se puede insertar un valor especificado explícitamente o NULL. Cada valor en la cláusula debe estar separado por una coma. Se puede especificar más de un conjunto de valores para insertar varias filas.

Sintaxis: VALORES ( { valor | NULL } [ , ... ] ) [ , ( ... ) ]

Nota: escriba campos anulables en campos no nulos

Una columna anulable de otra tabla no se puede insertar en una columna no anulable de una tabla. Spark puede usar la función nvl para manejarlo. Por ejemplo, la clave 1 de la tabla A no es nula y la clave 2 de la tabla B es anulable:

INSERTAR EN UNA tecla 1 SELECCIONAR nvl (tecla 2, ) DESDE B

caso:

INSERT INTO tests VALUES(1,1,'order','2023-07-01','1'), (2,2,'pay','2023-07-01','2');

INSERT INTO tests_p SELECT * from tests;

4.5 Consulta de datos

Al igual que todas las demás tablas, las tablas de Paimon se pueden consultar mediante la instrucción SELECT.

La lectura masiva de Paimon devuelve todos los datos en la instantánea de la tabla. De forma predeterminada, las lecturas masivas devuelven la última instantánea.

4.5.1 Viaje en el tiempo

El viaje en el tiempo se puede realizar utilizando VERSION AS OF y TIMESTAMP AS OF en las consultas.

1) Lea la instantánea de la identificación especificada

SELECT * FROM tests VERSION AS OF 1;

SELECT * FROM tests VERSION AS OF 2;

2) Lea la instantánea de la marca de tiempo especificada

-- 查看快照信息

SELECT * FROM tests&snapshots;

SELECT * FROM tests TIMESTAMP AS OF '2023-07-03 15:34:20.123';

-- 时间戳指定到秒(向上取整)

SELECT * FROM tests TIMESTAMP AS OF 1688369660;

3) Leer la etiqueta especificada

SELECT * FROM tests VERSION AS OF 'my-tag';

4.5.2 Consulta incremental

Lea los cambios incrementales entre la instantánea de inicio (exclusiva) y la instantánea final. Por ejemplo, "3,5" indica cambios entre la instantánea 3 y la instantánea 5:

chispa.leer()

.format(“paimon”)

.option(“incremental-entre”, “3,5”)

.load(“ruta/a/tabla”)

4.6 Tablas del sistema

Las tablas del sistema contienen metadatos e información sobre cada tabla, como instantáneas creadas y opciones utilizadas. Los usuarios pueden acceder a las tablas del sistema a través de consultas por lotes.

4.6.1 Tabla de instantáneas

A través de la tabla de instantáneas, puede consultar la información del historial de instantáneas de la tabla, incluida la cantidad de registros que se produjeron en la instantánea. Se requieren acentos graves para su uso en Spark 表名$系统表名.

SELECCIONE * DESDE tests$snapshots;

Al consultar la tabla de instantáneas, puede conocer la información de confirmación y caducidad de la tabla, así como el viaje en el tiempo de los datos.

4.6.2 Tabla de esquemas

El esquema histórico de la tabla se puede consultar a través de la tabla de esquemas.

SELECCIONE * DESDE tests$schemas;

Se pueden unir una tabla de instantáneas y una tabla de esquema para obtener los campos de una instantánea determinada.

SELECCIONE s.snapshot_id, t.schema_id, t.fields

DESDE tests$snapshotss ÚNETE tests$schemast

ON s.schema_id=t.schema_id donde s.snapshot_id=3;

4.6.3 Tabla de opciones Tabla de opciones

La información de opciones de la tabla especificada en el DDL se puede consultar a través de la tabla de opciones. Las opciones que no se muestran serán los valores predeterminados.

SELECCIONE * DESDE tests$options;

4.6.4 Tabla de registro de auditoría

Si necesita el registro de cambios de la tabla de auditoría, puede usar la tabla del sistema audit_log. A través de la tabla audit_log, la columna de tipo de fila se puede obtener al obtener datos incrementales de la tabla. Puede usar esta columna para filtrar y otras operaciones para completar la revisión.

rowkind tiene cuatro valores:

+I: operación de inserción.

-U: utiliza el contenido anterior de la línea actualizada para la operación de actualización.

+U: Realiza una operación de actualización con el nuevo contenido de la línea actualizada.

-D: operación de borrado.

SELECCIONE * DESDE tests$audit_log;

4.6.5 Tabla de archivos

Archivos que se pueden consultar para una tabla de instantáneas específica.

– Consultar los archivos de la última instantánea

SELECCIONE * DESDE tests$files;

4.6.6 Tabla de etiquetas

A través de la tabla de etiquetas, puede consultar la información del historial de etiquetas de la tabla, incluidas las instantáneas que se utilizan para etiquetar y cierta información histórica de las instantáneas. También puede obtener todos los nombres de etiquetas y datos de viajes en el tiempo a una etiqueta específica por nombre.

SELECCIONE * DESDE tests$tags;

Supongo que te gusta

Origin blog.csdn.net/xianyu120/article/details/132130940
Recomendado
Clasificación