Delta Lakes 테이블 읽기(Synapse 또는 외부 위치)
참고 항목
2025년 1월 31일에 Azure HDInsight on AKS가 사용 중지됩니다. 2025년 1월 31일 이전에 워크로드가 갑자기 종료되지 않도록 워크로드를 Microsoft Fabric 또는 동등한 Azure 제품으로 마이그레이션해야 합니다. 구독의 나머지 클러스터는 호스트에서 중지되고 제거됩니다.
사용 중지 날짜까지 기본 지원만 사용할 수 있습니다.
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 테이블을 만드는 방법을 보여줍니다.
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/
Trino에서 Delta Lake 스키마를 만듭니다.
CREATE SCHEMA delta.default;
또는 특정 스토리지 계정에 스키마를 만들 수도 있습니다.
CREATE SCHEMA delta.default WITH (location = 'abfss://container@storageaccount.dfs.core.windows.net/trino/');
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/');
테이블을 쿼리하여 확인합니다.
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")