다음을 통해 공유


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

적용 대상: Microsoft Fabric의✅ Warehouse

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

Important

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

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

외부 데이터 쿼리에 대한 자세한 내용 및 예제는 패브릭 데이터 웨어하우스 또는 SQL 분석 엔드포인트를 사용하여 외부 데이터 레이크 파일 쿼리를 참조하세요.

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

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' 해야 합니다.

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) 함수를 사용하면 사용자 지정 텍스트 파일을 읽기 위한 다양한 옵션을 정의할 수 있습니다.

예를 들어 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,
                ROWTERMINATOR='\n',
                FIELDTERMINATOR=','
) 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 절에 제공된 형식을 명시적으로 할당합니다.

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

다음 단계

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