Leer tablas de Delta Lake (ubicadas en Synapse o en una ubicación externa)
Importante
Azure HDInsight en AKS se retiró el 31 de enero de 2025. Obtenga más información mediante este anuncio.
Debe migrar las cargas de trabajo a microsoft Fabric o un producto equivalente de Azure para evitar la terminación repentina de las cargas de trabajo.
Importante
Esta característica está actualmente en versión preliminar. Los Términos de uso complementarios para las versiones preliminares de Microsoft Azure incluyen más términos legales que se aplican a las características de Azure que se encuentran en versión beta, en versión preliminar o, de lo contrario, aún no se han publicado en disponibilidad general. Para obtener información sobre esta versión preliminar específica, consulte información de la versión preliminar de Azure HDInsight en AKS. Para preguntas o sugerencias de funciones, envíe una solicitud en AskHDInsight con los detalles y síganos para obtener más actualizaciones sobre Comunidad de Azure HDInsight.
En este artículo se proporciona información general sobre cómo leer una tabla de Delta Lake sin tener acceso a la metastore (Synapse u otras metastores sin acceso público).
Puede realizar las siguientes operaciones en las tablas mediante Trino con HDInsight en AKS.
- BORRAR
- ACTUALIZAR
- INSERTAR
- FUSIONAR
Prerrequisitos
Creación de esquemas y tablas de Delta Lake
En esta sección se muestra cómo crear una tabla Delta sobre una ubicación preexistente, suponiendo que ya tiene configurado el catálogo de Delta Lake.
** Navega por la cuenta de almacenamiento usando el
Storage browser
en el portal de Azure hacia el directorio base de tu tabla. Si esta tabla se origina en Synapse, es probable que esté en una ruta de accesosynapse/workspaces/.../warehouse/
. Lleva el nombre de tu tabla y contiene un directorio_delta_log
. SeleccioneCopy URL
en los tres puntos situados junto a la carpeta.Necesita convertir esta ruta de acceso http en una ruta ABFS (Sistema de archivos de blobs de Azure):
La ruta de acceso http de almacenamiento está estructurada de la siguiente manera:
https://{{AZURE_STORAGE_ACCOUNT}}.blob.core.windows.net/{{AZURE_STORAGE_CONTAINER}}/synapse/workspaces/my_workspace/warehouse/{{TABLE_NAME}}/
Las rutas de acceso de ABFS deben tener este aspecto:
abfss://{{AZURE_STORAGE_CONTAINER}}@{{AZURE_STORAGE_ACCOUNT}}.dfs.core.windows.net/synapse/workspaces/my_workspace/warehouse/{{TABLE_NAME}}/
Ejemplo:
abfss://container@storageaccount.dfs.core.windows.net/synapse/workspaces/workspace_name/warehouse/table_name/
Cree un esquema de Delta Lake en Trino.
CREATE SCHEMA delta.default;
Como alternativa, también puede crear un esquema en una cuenta de almacenamiento específica:
CREATE SCHEMA delta.default WITH (location = 'abfss://container@storageaccount.dfs.core.windows.net/trino/');
Use el procedimiento
register_table
para crear la tabla.CALL delta.system.register_table(schema_name => 'default', table_name => 'table_name', table_location => 'abfss://container@storageaccount.dfs.core.windows.net/synapse/workspaces/workspace_name/warehouse/table_name/');
Consulte la tabla para comprobarlo.
SELECT * FROM delta.default.table_name
Escribe tablas de Delta Lake en Synapse Spark
Use format("delta")
para guardar un dataframe como una tabla Delta, y luego puede usar la ruta de acceso donde guardó el dataframe en formato Delta para registrar la tabla en Trino.
my_dataframe.write.format("delta").save("abfss://container@storageaccount.dfs.core.windows.net/synapse/workspaces/workspace_name/warehouse/table_name")