Share via


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.

  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