Compartir a través de


Lectura de tablas de Delta Lake (Synapse o ubicación externa)

Nota:

Retiraremos Azure HDInsight en AKS el 31 de enero de 2025. Antes del 31 de enero de 2025, deberá 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. Los clústeres restantes de la suscripción se detendrán y quitarán del host.

Solo el soporte técnico básico estará disponible hasta la fecha de retirada.

Importante

Esta funcionalidad actualmente está en su versión preliminar. En Términos de uso complementarios para las versiones preliminares de Microsoft Azure encontrará más términos legales que se aplican a las características de Azure que están en versión beta, en versión preliminar, o que todavía no se han lanzado con disponibilidad general. Para más 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.

  1. 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 de synapse/workspaces/.../warehouse/ y se le asignará un nombre después de la tabla y contendrá un directorio _delta_log. Seleccione Copy 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/

  2. 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/');
    
  3. 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/');
    
  4. 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

Cómo configurar el almacenamiento en caché en Trino