Lectura de tablas de Delta Lake (Synapse o ubicación externa)
Importante
Esta funcionalidad actualmente está en su 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 la versión beta, en versión preliminar, o que todavía no se han lanzado con disponibilidad general. Para obtener información sobre esta versión preliminar específica, consulte la Información de Azure HDInsight sobre la versión preliminar de AKS. Para plantear preguntas o sugerencias sobre la característica, 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.
- DELETE
- UPDATE
- INSERT
- MERGE
Requisitos previos
Creación de esquemas y tablas de Delta Lake
En esta sección se muestra cómo crear una tabla Delta a través de una ubicación preexistente, dado que ya tiene configurado un catálogo de Delta Lake.
Examine la cuenta de almacenamiento mediante el
Storage browser
en Azure Portal hasta donde está el directorio base de la tabla. Si esta tabla se origina en Synapse, es probable que esté en una ruta de acceso desynapse/workspaces/.../warehouse/
y se le asignará un nombre después de la tabla y contendrá un directorio_delta_log
. SeleccioneCopy URL
en los tres puntos situados junto a la carpeta.Debe convertir esta ruta de acceso http en una ruta de acceso ABFS (Azure Blob File System):
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
Escritura de tablas de Delta Lake en Synapse Spark
Use format("delta")
para guardar un dataframe como una tabla Delta y, a continuación, puede usar la ruta de acceso donde guardó el dataframe como 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")
Pasos siguientes
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente las Cuestiones de GitHub como mecanismo de retroalimentación para el contenido y lo sustituiremos por un nuevo sistema de retroalimentación. Para más información, consulta:Enviar y ver comentarios de