Просмотр содержимого файла с помощью функции OPENROWSET (предварительная версия)
применимо к: хранилище✅ в Microsoft Fabric
Функция OPENROWSET позволяет считывать содержимое файлов Parquet или CSV и возвращать данные в виде набора строк.
Эту функцию можно использовать для проверки содержимого файла перед загрузкой их в таблицу хранилища данных. С помощью OPENROWSET вы можете легко изучить файлы, которые вы будете загружать в Fabric Warehouse, понять столбцы, которые вы загружаете, и определить их типы.
Когда вы поймете свои данные, вы сможете создать таблицы, которые будут использоваться для хранения содержимого загруженных файлов.
Просмотр файлов Parquet с помощью функции OPENROWSET
В первом примере мы проверяем данные из источника Parquet.
Используйте следующий код для чтения примеров данных из файла с помощью функции OPENROWSET(BULK) с источником Parquet:
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
Так как эти данные общедоступны и не требуют проверки подлинности, вы можете легко скопировать этот запрос в хранилище Fabric и выполнить его без каких-либо изменений.
Никаких сведений о проверке подлинности не требуется.
Вам не нужно указывать параметр FORMAT
, так как функция OPENROWSET
предполагает, что вы читаете формат Parquet на основе расширения файла .parquet
в URI.
Просмотр CSV-файлов с помощью функции OPENROWSET
Во втором примере мы проверяем данные из CSV-файла. Используйте следующий код для чтения примеров данных из CSV-файла с помощью функции 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.csv') AS data
Так как эти данные общедоступны и не требуют проверки подлинности, вы можете легко скопировать этот запрос в хранилище Fabric и выполнить его без каких-либо изменений. Никаких сведений о проверке подлинности не требуется.
Вам не нужно указывать параметр FORMAT
, так как функция OPENROWSET
предполагает, что вы считываете формат CSV
на основе расширения файла .csv
в URI.
Заметка
В результатах можно заметить, что первая строка в этом файле содержит имена столбцов вместо данных. В этом случае необходимо изменить запрос, используя параметр HEADER_ROW, чтобы пропустить строку и использовать её только для имен столбцов. Это часть процесса изучения данных, так как файл постепенно настраивается до тех пор, пока он не соответствует базовым данным.
Чтение пользовательских текстовых файлов
Функция OPENROWSET(BULK) позволяет определить различные параметры чтения пользовательских текстовых файлов.
Например, можно указать значения для ROWTERMINATOR
и FIELDTERMINATOR
, чтобы указать базовый формат файла.
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
, которая возвращает 0 строк.
Затем он принимает схему столбцов из этого внутреннего запроса и возвращает схему столбца в результате процедуры.
Схему столбца можно использовать для определения структуры целевой таблицы в инструкции 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
.
Таким образом можно определить более точные типы, которые могут повысить производительность запросов.
Дальнейшие действия
Завершив изучение файлов и создание целевых таблиц, можно перейти к загрузке данных, выбрав один из следующих методов: