Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Из этой статьи вы узнаете, как сохранять результаты запросов в хранилище, используя бессерверный пул SQL.
Предварительные условия
Для начала создайте базу данных, в которой будут выполняться запросы. Затем инициализируйте объекты, выполнив сценарий установки для этой базы данных. Этот скрипт создает источники данных, учетные данные области базы данных и форматы внешних файлов, которые используются для чтения данных в этих примерах.
Придерживаясь инструкций в этой статье, создайте источники данных, учетные данные области базы данных и форматы внешних файлов, которые будут использоваться для записи данных в выходное хранилище.
Создать внешнюю таблицу как выбрать
Чтобы сохранить результаты запроса в хранилище, можно использовать инструкцию CREATE EXTERNAL TABLE AS SELECT (CETAS).
Примечание.
Измените эти значения в запросе, чтобы отразить среду:
- mydbname — измените его на имя созданной базы данных.
- storage-account-sas — подписанный URL-адрес для учетной записи хранения, в которой требуется записать результаты.
- имя учетной записи хранения — имя учетной записи хранения, в которой вы хотите написать результаты (убедитесь, что у вас есть контейнер с именем CSV или вы также измените имя контейнера).
USE [mydbname];
GO
CREATE DATABASE SCOPED CREDENTIAL [SasTokenWrite]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'storage-account-sas';
GO
CREATE EXTERNAL DATA SOURCE [MyDataSource] WITH (
LOCATION = 'https://your-storage-account-name.blob.core.windows.net/csv', CREDENTIAL = [SasTokenWrite]
);
GO
CREATE EXTERNAL FILE FORMAT [ParquetFF] WITH (
FORMAT_TYPE = PARQUET,
DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec'
);
GO
CREATE EXTERNAL TABLE [dbo].[PopulationCETAS] WITH (
LOCATION = 'populationParquet/',
DATA_SOURCE = [MyDataSource],
FILE_FORMAT = [ParquetFF]
) AS
SELECT
*
FROM
OPENROWSET(
BULK 'csv/population-unix/population.csv',
DATA_SOURCE = 'sqlondemanddemo',
FORMAT = 'CSV', PARSER_VERSION = '2.0'
) WITH (
CountryCode varchar(4),
CountryName varchar(64),
Year int,
PopulationCount int
) AS r;
Примечание.
Вам необходимо изменить этот скрипт и изменить целевое расположение, чтобы выполнить его снова. Внешние таблицы нельзя создать в расположении, где уже имеются данные.
Использование внешней таблицы
Вы можете использовать внешнюю таблицу, созданную с помощью CETAS, как обычную внешнюю таблицу.
Примечание.
Измените первую строку в запросе, то есть [mydbname], поэтому вы используете созданную базу данных.
USE [mydbname];
GO
SELECT
CountryName, PopulationCount
FROM PopulationCETAS
WHERE
[Year] = 2019
ORDER BY
[PopulationCount] DESC;
Замечания
После хранения результатов данные во внешней таблице не могут быть изменены. Невозможно повторить этот сценарий, так как CETAS не перезаписывает базовые данные, созданные в предыдущем выполнении.
В настоящее время поддерживаются только поддерживаемые типы выходных данных Parquet и CSV.
Связанный контент
Дополнительные сведения о том, как запрашивать различные типы файлов, см. в статьях Запрашивание одного CSV-файла, Запрашивание файлов Parquet и Запрашивание файлов JSON.