Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Бессерверный пул SQL Synapse — это служба запросов, позволяющая выполнять SQL-запросы по файлам, размещенным в хранилище Azure. Из этого краткого руководства вы узнаете, как запрашивать различные типы файлов с помощью бессерверного пула SQL. Список поддерживаемых форматов см. в разделе OPENROWSET.
В этом кратком руководстве показано, как запрашивать CSV-файлы, Apache Parquet и JSON.
Предварительные условия
Выберите клиент SQL для создания запросов:
- Azure Synapse Studio — это веб-средство, которое можно использовать для просмотра файлов в хранилище и создания SQL-запросов.
- Visual Studio Code с расширением mssql — это кроссплатформенное упрощенное средство разработчика и данных, которое позволяет выполнять SQL-запросы и записные книжки в базе данных по запросу.
- SQL Server Management Studio — это клиентское средство, которое позволяет запускать SQL-запросы в базе данных по запросу.
В этом быстром начале используются следующие параметры:
Параметр | Описание |
---|---|
Адрес конечной точки службы бессерверного пула SQL | Используется в качестве имени сервера. |
Регион конечной точки службы бессерверного пула SQL | Используется для определения хранилища, используемого в примерах |
Имя пользователя и пароль для доступа к конечной точке | Используется для доступа к конечной точке. |
База данных, используемая для создания представлений | База данных, используемая в качестве начальной точки в примерах. |
Первоначальная настройка
Прежде чем использовать примеры, сделайте следующее:
- Создайте базу данных для представлений (если вы хотите использовать представления).
- Создайте учетные данные для использования бессерверным пулом SQL для доступа к файлам в хранилище.
Создание базы данных
Создайте собственную базу данных для демонстрационных целей. Эту базу данных можно использовать для создания представлений и примеров запросов в этой статье.
Примечание.
Базы данных используются только для просмотра метаданных, а не для реальных данных. Запишите имя базы данных для последующего использования в шагах по быстрому запуску.
Используйте следующую команду T-SQL, изменив <mydbname>
на имя по вашему выбору.
CREATE DATABASE <mydbname>
Создание источника данных
Чтобы выполнять запросы с помощью бессерверного пула SQL, создайте источник данных, который бессерверный пул SQL может использовать для доступа к файлам в хранилище. Выполните следующий фрагмент кода, чтобы создать источник данных, используемый в примерах в этом разделе. Замените <strong-password-here>
на надежный пароль по вашему выбору.
-- create master key that will protect the credentials:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<strong-password-here>'
-- create credentials for containers in our demo storage account
CREATE DATABASE SCOPED CREDENTIAL sqlondemand
WITH IDENTITY='SHARED ACCESS SIGNATURE',
SECRET = 'sv=2022-11-02&ss=b&srt=co&sp=rl&se=2042-11-26T17:40:55Z&st=2024-11-24T09:40:55Z&spr=https&sig=DKZDuSeZhuCWP9IytWLQwu9shcI5pTJ%2Fw5Crw6fD%2BC8%3D'
GO
CREATE EXTERNAL DATA SOURCE SqlOnDemandDemo WITH (
LOCATION = 'https://sqlondemandstorage.blob.core.windows.net',
CREDENTIAL = sqlondemand
);
Запрашивание CSV-файлов
The following image shows a preview of the file to be queried:
Следующий запрос показывает, как считать CSV-файл без строки заголовка, с новой строкой в стиле Windows и столбцами с разделителями-запятыми:
SELECT TOP 10 *
FROM OPENROWSET
(
BULK 'csv/population/*.csv',
DATA_SOURCE = 'SqlOnDemandDemo',
FORMAT = 'CSV', PARSER_VERSION = '2.0'
)
WITH
(
country_code VARCHAR (5)
, country_name VARCHAR (100)
, year smallint
, population bigint
) AS r
WHERE
country_name = 'Luxembourg' AND year = 2017
Схему можно указать во время компиляции запроса. Дополнительные примеры см. в статье "Запрос CSV-файлов".
Query Parquet files
В следующем примере показаны возможности автоматического вывода схемы для создания запросов на файлы Parquet. Она возвращает число строк за сентябрь 2017 г. без указания схемы.
Примечание.
You don't have to specify columns in OPENROWSET WITH
clause when reading Parquet files. В этом случае бессерверный пул SQL использует метаданные в файле Parquet и привязывает столбцы по имени.
SELECT COUNT_BIG(*)
FROM OPENROWSET
(
BULK 'parquet/taxi/year=2017/month=9/*.parquet',
DATA_SOURCE = 'SqlOnDemandDemo',
FORMAT='PARQUET'
) AS nyc
Дополнительные сведения см. в статье «Запрос файлов Parquet с помощью бессерверного SQL пула».
Запрашивание JSON-файлов
Образец JSON-файла
Файлы хранятся в контейнере JSON, используя папку books, и содержат одну запись о книге со следующей структурой:
{
"_id":"ahokw88",
"type":"Book",
"title":"The AWK Programming Language",
"year":"1988",
"publisher":"Addison-Wesley",
"authors":[
"Alfred V. Aho",
"Brian W. Kernighan",
"Peter J. Weinberger"
],
"source":"DBLP"
}
Пример запроса
В следующем запросе показано, как использовать JSON_VALUE для получения скалярных значений (название, издатель) из книги с заголовком вероятностные и статистические методы в криптологии, введение:
SELECT
JSON_VALUE(jsonContent, '$.title') AS title
, JSON_VALUE(jsonContent, '$.publisher') as publisher
, jsonContent
FROM OPENROWSET
(
BULK 'json/books/*.json',
DATA_SOURCE = 'SqlOnDemandDemo'
, FORMAT='CSV'
, FIELDTERMINATOR ='0x0b'
, FIELDQUOTE = '0x0b'
, ROWTERMINATOR = '0x0b'
)
WITH
( jsonContent varchar(8000) ) AS [r]
WHERE
JSON_VALUE(jsonContent, '$.title') = 'Probabilistic and Statistical Methods in Cryptology, An Introduction'
Внимание
Мы считываем весь JSON-файл как одну строку или столбец. Таким образом, FIELDTERMINATOR
, FIELDQUOTE
и ROWTERMINATOR
установлены на 0x0b
, так как мы не ожидаем найти это в файле.
Связанный контент
- Запрашивание CSV-файлов
- Запрашивание папок и нескольких файлов
- Запрашивание конкретных файлов
- Запрос файлов Parquet с помощью бессерверного пула SQL
- Запрос вложенных типов данных в файлах Parquet и JSON
- Запрос ФАЙЛОВ JSON с помощью бессерверного пула SQL
- Создание и использование представлений с помощью бессерверного пула SQL
- Создание и использование собственных внешних таблиц
- Сохранение результатов запроса в хранилище