다음을 통해 공유


OPENROWSET 함수를 사용하여 파일 콘텐츠 찾아보기

적용 대상: Microsoft Fabric의✅ Warehouse

OPENROWSET 함수를 사용하면 Parquet 또는 CSV 파일의 내용을 읽고 데이터를 행 집합으로 반환할 수 있습니다. 파일은 Azure Blob Storage, Azure Data Lake Storage 또는 Fabric OneLake에 저장할 수 있습니다.

Important

OPENROWSET 함수를 사용하여 Fabric OneLake 스토리지에서 파일을 읽는 기능은 현재 미리 보기로 제공됩니다.

이 기능을 사용하여 데이터 웨어하우스 테이블에 로드하기 전에 파일 내용을 검사할 수 있습니다. OPENROWSET을 사용하면 패브릭 웨어하우스에 수집한 파일을 쉽게 탐색하고, 수집 중인 열을 이해하고, 해당 형식을 확인할 수 있습니다.

데이터를 이해하면 수집된 파일 콘텐츠를 저장하는 데 사용할 테이블을 만들 수 있습니다.

OPENROWSET 함수를 사용하여 Parquet 파일 찾아보기

첫 번째 예제에서는 Parquet 원본의 데이터를 검사합니다.

파일에서 Parquet 소스를 사용하여 샘플 데이터를 읽으려면 OPENROWSET(BULK) 함수와 함께 다음 코드를 사용합니다.

SELECT TOP 10 * 
FROM OPENROWSET(BULK 'https://pandemicdatalake.blob.core.windows.net/public/curated/covid-19/bing_covid-19_data/latest/bing_covid-19_data.parquet') AS data

이 데이터는 공개적으로 사용할 수 있으며 인증이 필요하지 않으므로 이 쿼리를 패브릭 웨어하우스에 쉽게 복사하여 변경하지 않고 실행할 수 있습니다.

인증 세부 정보가 필요하지 않습니다.

FORMAT 함수는 URI의 OPENROWSET 파일 확장자를 기반으로 Parquet 형식을 읽고 있다고 가정하므로 .parquet 옵션을 지정할 필요가 없습니다.

OPENROWSET 함수를 사용하여 CSV 파일 찾아보기

두 번째 예제에서는 CSV 파일의 데이터를 검사합니다. OPENROWSET(BULK) 함수를 사용하여 CSV 파일에서 샘플 데이터를 읽으려면 다음 코드를 사용합니다.

SELECT TOP 10 * 
FROM OPENROWSET(BULK 'https://pandemicdatalake.blob.core.windows.net/public/curated/covid-19/bing_covid-19_data/latest/bing_covid-19_data.csv') AS data

이 데이터는 공개적으로 사용할 수 있으며 인증이 필요하지 않으므로 이 쿼리를 패브릭 웨어하우스에 쉽게 복사하여 변경하지 않고 실행할 수 있습니다. 인증 세부 정보가 필요하지 않습니다.

FORMAT 함수는 URI의 파일 확장자에 따라 OPENROWSET 형식을 읽고 있다고 가정하기 때문에 CSV 옵션을 지정할 필요가 없습니다.

Note

결과에서 이 파일의 첫 번째 행에 데이터 대신 열 이름이 포함되어 있음을 알 수 있습니다. 이 경우 HEADER_ROW 옵션을 사용하여 쿼리를 수정하여 행을 건너뛰고 열 이름에만 사용해야 합니다. 기본 데이터와 일치할 때까지 파일을 점진적으로 조정하므로 이는 데이터 탐색 프로세스의 일부입니다.

OPENROWSET 함수를 사용하여 JSONL 파일 찾아보기

OPENROWSET(BULK) 함수를 사용하면 줄로 구분된 형식으로 JSON 파일을 찾아볼 수 있습니다.

SELECT TOP 10 * 
FROM OPENROWSET(BULK 'https://pandemicdatalake.blob.core.windows.net/public/curated/covid-19/bing_covid-19_data/latest/bing_covid-19_data.jsonl') AS data

파일에 각 줄이 유효한 JSON 문서를 포함하는 줄로 구분된 텍스트가 있을 경우, OPENROWSET 함수를 사용하여 직접 읽을 수 있습니다.

옵션을 명시적으로 지정할 FORMAT 필요가 없습니다. 이 파일은 OPENROWSET URI와 같은 일반적인 파일 확장명(예: .jsonl.ldjson.ndjson URI)에 따라 JSONL 형식을 자동으로 유추합니다. 그러나 이 형식에 다른 파일 확장자를 사용하는 경우 올바른 구문 분석을 위해 지정 FORMAT = 'jsonl' 해야 합니다.

Note

JSONL 형식은 현재 프리뷰 상태입니다.

Fabric OneLake에서 파일 읽기

OPENROWSET(BULK) 함수를 사용하면 Fabric OneLake에 저장된 파일을 읽을 수 있습니다. 파일이 레이크하우스의 파일 섹션에 저장된 경우, 다음 구문을 사용하여 이 파일을 읽을 수 있습니다.

SELECT TOP 10 * 
FROM OPENROWSET(BULK 'https://onelake.dfs.fabric.microsoft.com/<workspaceId>/<lakehouseId>/Files/latest/bing_covid-19_data.jsonl') AS data

<workspaceId><lakehouseId>를 패브릭 작업 영역 URI에서 찾을 수 있는 작업 영역 및 Lakehouse GUID로 바꾸세요. Lakehouse의 /Files 섹션에 파일을 참조하고 있는지 확인하십시오.

Important

OPENROWSET 함수를 사용하여 Fabric OneLake 스토리지에서 파일을 읽는 기능은 현재 미리 보기로 제공됩니다. 에 적용할 수 있는 COPY INTO 확인합니다OPENROWSET(BULK).

사용자 지정 텍스트 파일 읽기

OPENROWSET(BULK) 함수를 사용하면 사용자 지정 텍스트 파일을 읽기 위한 다양한 옵션을 정의할 수 있습니다.

예를 들어 ROWTERMINATORFIELDTERMINATOR 값을 지정하여 기본 파일 형식을 나타낼 수 있습니다.

select *
from OPENROWSET(BULK 'https://pandemicdatalake.blob.core.windows.net/public/curated/covid-19/bing_covid-19_data/latest/bing_covid-19_data.csv',
                FORMAT='CSV',
                HEADER_ROW=True,
                ROW_TERMINATOR='\n',
                FIELD_TERMINATOR=','
) AS data

이 예제에서는 각 행이 줄 바꿈으로 구분되고 각 필드가 쉼표로 구분되는 CSV 형식의 파일을 읽는 것을 명시적으로 지정합니다. 첫 번째 행에는 열 이름에 사용할 머리글이 포함됩니다.

열 메타데이터 탐색

OPENROWSET 함수를 사용하면 샘플 데이터를 읽는 쿼리와 sp_describe_first_result_set 프로시저를 결합하여 파일 열 및 해당 형식을 쉽게 볼 수 있습니다.

EXEC sp_describe_first_result_set 
N'SELECT TOP 0 * 
FROM OPENROWSET(BULK ''https://pandemicdatalake.blob.core.windows.net/public/curated/covid-19/bing_covid-19_data/latest/bing_covid-19_data.parquet'') AS data';

이 예제에서 프로시저는 sp_describe_first_result_set 함수를 사용하여 쿼리를 OPENROWSET 실행하며 행은 반환하지 않습니다.

그런 다음 이 내부 쿼리에서 열 스키마를 가져와 프로시저의 결과로 열 스키마를 반환합니다.

이 열 스키마를 사용하여 데이터를 수집하는 문에서 CREATE TABLE 대상 테이블의 구조를 정의할 수 있습니다. 또는 다음 예제와 같이 이러한 결과를 사용하여 함수 결과에 OPENROWSET 대해 보다 정확한 형식을 지정할 수 있습니다.

OPENROWSET 함수의 스키마 지정

OPENROWSET(BULK) 함수는 데이터 샘플을 기반으로 예상 열 형식을 반환합니다.

샘플이 대표적이지 않으면 예기치 않은 형식이나 크기가 발생할 수 있습니다.

파일의 열 형식을 알고 있는 경우 WITH 절을 사용하여 열의 스키마를 명시적으로 정의할 수 있습니다.

SELECT TOP 10 * 
FROM OPENROWSET(BULK 'https://pandemicdatalake.blob.core.windows.net/public/curated/covid-19/bing_covid-19_data/latest/bing_covid-19_data.csv') AS data
WITH (updated date,
      load_time datetime2,
      deaths_change smallint,
      id int,
      confirmed int,
      confirmed_change int,
      deaths int,
      recovered int,
      recovered_change int,
      latitude float,
      longitude float,
      iso2 varchar(8000),
      iso3 varchar(8000),
      country_region varchar(8000),
      admin_region_1 varchar(8000),
      iso_subdivision varchar(8000),
      admin_region_2 varchar(8000)
) AS data;

OPENROWSET(BULK) 함수는 열 형식을 추측하는 대신 WITH 절에 제공된 형식을 명시적으로 할당합니다.

이렇게 하면 보다 정확한 형식을 정의하여 쿼리 성능을 향상시킬 수 있습니다.

Next steps

파일 탐색을 완료하고 대상 테이블을 만든 후 다음 방법 중 하나를 사용하여 수집을 진행할 수 있습니다.