Azure Synapse Analytics Serverless SQL Pool에서 Delta Lake 쿼리(Preview)
소개
빌드 당 미리보기가 시작된 Synapse Analytics Serverless SQL Pool에서 Delta Lake 자습서를 소개합니다.
참고 MSDocs 튜토리얼의 확장 버전으로 사용하십시오.
※2021/6의 정보가 됩니다
참고:
Query Delta Lake files (preview) using serverless SQL pool in Azure Synapse Analytics
Synapse SQL에서 외부 테이블 사용
Query Delta Lake files using T-SQL language in Azure Synapse Analytics
Delta Lake 정보
우선은 전장 된장입니다.
Databricks의 시작 방법
Delta Lake 개요
※0.3 무렵이므로 낡은 점 있을지도
Databricks의 CSA 쪽이 엄청 알기 쉽게 활용 방법까지 기사를 써 줍니다.
@ 타카 _ 야요이
Qiita 검색 결과
샘플 코드
Spark Pool에서 데이터 준비
Azure Open Datasets 에서 미국 인구 데이터를 사용합니다.
300만 건 정도의 데이터입니다.
pyspark
# Create Data Frame and Display
from azureml.opendatasets import UsPopulationCounty
population = UsPopulationCounty()
population_df = population.to_spark_dataframe()
display(population_df.limit(5))
pyspark
# Write format Delta
(population_df.write
.format("delta")
.mode("overwrite")
.save("abfss://datalake@<Azure Data Lake Storage Gen2名を入れてください>.dfs.core.windows.net/bronze/UsPopulationCounty/"))
그건 그렇고
Spark SQL로 테이블 등록
이 경우 Spark 테이블로 등록되지만 지금은 ServerelssSQLPool에서 제대로 작동하지 않습니다.
sql
CREATE TABLE UsPopulationCounty
USING DELTA
LOCATION 'abfss://datalake@<Azure Data Lake Storage Gen2名を入れてください>.dfs.core.windows.net/bronze/UsPopulationCounty/'
Serverless SQL Pool에서 쿼리
오른쪽 클릭에서 100행 선택 → 경로를 폴더로 변경하여 FORMAT을 DELTA로 변경하기 쉽습니다.
sql
SELECT
TOP 100 *
FROM
OPENROWSET(
BULK 'https://dlsanalyticsdemo.dfs.core.windows.net/datalake/bronze/UsPopulationCounty/',
FORMAT='DELTA'
) AS [result]
Serverless SQL Pool에서 외부 테이블화
이쪽도 오른쪽 클릭으로부터 스크립트를 생성시키는 것이 편합니다.
형식이 Delta이고 위치가 파일이므로 변경합니다. (하이라이트 개소)
수정 후 SQL 예제
sql
IF NOT EXISTS (SELECT * FROM sys.external_file_formats WHERE name = 'SynapseDeltaFormat')
CREATE EXTERNAL FILE FORMAT [SynapseDeltaFormat]
WITH ( FORMAT_TYPE = delta)
GO
IF NOT EXISTS (SELECT * FROM sys.external_data_sources WHERE name = 'datalake_<>_dfs_core_windows_net')
CREATE EXTERNAL DATA SOURCE [datalake_<>_dfs_core_windows_net]
WITH (
LOCATION = 'https://<Storage Account 名>.dfs.core.windows.net/datalake',
)
Go
CREATE EXTERNAL TABLE dbo.UsPopulationCountrySQL (
[decennialTime] varchar(8000),
[stateName] varchar(8000),
[countyName] varchar(8000),
[population] int,
[race] varchar(8000),
[sex] varchar(8000),
[minAge] int,
[maxAge] int,
[year] int
)
WITH (
LOCATION = 'bronze/UsPopulationCounty/',
DATA_SOURCE = [datalake_<>_dfs_core_windows_net],
FILE_FORMAT = [SynapseDeltaFormat]
)
GO
SELECT TOP 100 * FROM dbo.UsPopulationCountrySQL
GO
실행 후 외부 테이블로 표시됩니다.
또한 외부 테이블 정의에 대해서는 디폴트라고 문자 길이가 최대로 취해 버리므로, 적절히 변경합시다.
Reference
이 문제에 관하여(Azure Synapse Analytics Serverless SQL Pool에서 Delta Lake 쿼리(Preview)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ryoma-nagata/items/8f20ee9c4f0601cec965텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)