Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule dowiesz się, jak przechowywać wyniki zapytań w magazynie przy użyciu bezserwerowej puli SQL.
Wymagania wstępne
Pierwszym krokiem jest utworzenie bazy danych , w której będą wykonywane zapytania. Następnie zainicjuj obiekty, wykonując skrypt instalacyjny w tej bazie danych. Ten skrypt instalacyjny utworzy źródła danych, poświadczenia o zakresie bazy danych i zewnętrzne formaty plików, które są używane do odczytywania danych w tych przykładach.
Postępuj zgodnie z instrukcjami w tym artykule, aby utworzyć źródła danych, poświadczenia o zakresie bazy danych i zewnętrzne formaty plików używane do zapisywania danych w magazynie wyjściowym.
Utwórz tabelę zewnętrzną jako wybór
Możesz użyć instrukcji CREATE EXTERNAL TABLE AS SELECT (CETAS), aby zapisać wyniki zapytania w magazynie danych.
Uwaga
Zmień te wartości w zapytaniu, aby odzwierciedlić środowisko:
- mydbname — zmień ją na nazwę utworzonej bazy danych
- storage-account-sas - sygnatura dostępu współdzielonego dla konta magazynu, gdzie chcesz zapisać swoje wyniki
- your-storage-account-name — nazwa konta magazynu, na którym chcesz zapisać wyniki (upewnij się, że masz kontener o nazwie "csv" lub zmienisz nazwę kontenera w tym miejscu)
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;
Uwaga
Należy zmodyfikować ten skrypt i zmienić lokalizację docelową, aby wykonać go ponownie. Tabele zewnętrzne nie mogą być tworzone w lokalizacji, w której masz już pewne dane.
Użyj tabeli zewnętrznej
Możesz użyć tabeli zewnętrznej utworzonej przez CETAS jak zwykłej tabeli zewnętrznej.
Uwaga
Zmień pierwszy wiersz zapytania, czyli [mydbname], więc używasz utworzonej bazy danych.
USE [mydbname];
GO
SELECT
CountryName, PopulationCount
FROM PopulationCETAS
WHERE
[Year] = 2019
ORDER BY
[PopulationCount] DESC;
Uwagi
Po przechowywaniu wyników nie można modyfikować danych w tabeli zewnętrznej. Nie można powtórzyć tego skryptu, ponieważ CETAS nie nadpisze bazowych danych utworzonych w poprzednim wykonaniu skryptu.
Jedynymi obsługiwanymi typami danych wyjściowych są obecnie Parquet i CSV.
Powiązana zawartość
Aby uzyskać więcej informacji na temat wykonywania zapytań dotyczących różnych typów plików, zobacz artykuły Query single CSV file (Zapytania dotyczące pojedynczego pliku CSV), Query Parquet files (Zapytania dotyczące plików Parquet) i Query JSON files (Wykonywanie zapytań w plikach JSON).