Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Из этой статьи вы узнаете, как сохранять результаты запросов в хранилище, используя бессерверный пул 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.