Share via


Delta Lakes 테이블 읽기(Synapse 또는 외부 위치)

Important

이 기능은 현지 미리 보기로 제공됩니다. Microsoft Azure 미리 보기에 대한 보충 사용 약관에는 베타 또는 미리 보기로 제공되거나 아직 일반 공급으로 릴리스되지 않은 Azure 기능에 적용되는 더 많은 약관이 포함되어 있습니다. 이 특정 미리 보기에 대한 자세한 내용은 Azure HDInsight on AKS 미리 보기 정보를 참조하세요. 질문이나 기능 제안이 있는 경우 AskHDInsight에서 세부 정보와 함께 요청을 제출하고 Azure HDInsight 커뮤니티에서 더 많은 업데이트를 확인하세요.

이 문서에서는 메타스토어(Synapse 또는 공용 액세스가 없는 다른 메타스토어)에 액세스하지 않고 Delta Lake 테이블을 읽는 방법에 대한 개요를 제공합니다.

HDInsight on AKS와 함께 Trino를 사용하여 테이블에서 다음 작업을 수행할 수 있습니다.

  • DELETE
  • UPDATE
  • INSERT
  • MERGE

필수 조건

Delta Lake 스키마 및 테이블 만들기

이 섹션에서는 Delta Lake 카탈로그가 이미 구성된 경우 기존 위치에 Delta 테이블을 만드는 방법을 보여줍니다.

  1. Azure Portal에서 Storage browser를 사용하여 테이블의 기본 디렉터리가 있는 스토리지 계정을 찾습니다. 이 테이블이 Synapse에서 시작되는 경우 synapse/workspaces/.../warehouse/ 경로 아래에 있을 수 있으며 테이블의 이름을 따서 명명되고 _delta_log 디렉터리가 포함됩니다. 폴더 옆에 있는 세 개의 점 중에서 Copy URL을 선택합니다.

    이 http 경로를 ABFS(Azure Blob File System) 경로로 변환해야 합니다.

    스토리지 http 경로는 https://{{AZURE_STORAGE_ACCOUNT}}.blob.core.windows.net/{{AZURE_STORAGE_CONTAINER}}/synapse/workspaces/my_workspace/warehouse/{{TABLE_NAME}}/과 같이 구조화됩니다.

    ABFS 경로는 abfss://{{AZURE_STORAGE_CONTAINER}}@{{AZURE_STORAGE_ACCOUNT}}.dfs.core.windows.net/synapse/workspaces/my_workspace/warehouse/{{TABLE_NAME}}/과 같아야 합니다.

    예: abfss://container@storageaccount.dfs.core.windows.net/synapse/workspaces/workspace_name/warehouse/table_name/

  2. Trino에서 Delta Lake 스키마를 만듭니다.

    CREATE SCHEMA delta.default;
    

    또는 특정 스토리지 계정에 스키마를 만들 수도 있습니다.

    CREATE SCHEMA delta.default WITH (location = 'abfss://container@storageaccount.dfs.core.windows.net/trino/');
    
  3. register_table 프로시저를 사용하여 테이블을 만듭니다.

    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. 테이블을 쿼리하여 확인합니다.

    SELECT * FROM delta.default.table_name
    

Synapse Spark에서 Delta Lake 테이블 작성

format("delta")를 사용하여 데이터 프레임을 Delta 테이블로 저장한 다음, 데이터 프레임을 Delta 형식으로 저장한 경로를 사용하여 Trino에 테이블을 등록할 수 있습니다.

my_dataframe.write.format("delta").save("abfss://container@storageaccount.dfs.core.windows.net/synapse/workspaces/workspace_name/warehouse/table_name")

다음 단계

Trino에서 캐싱을 구성하는 방법