Przechowywanie wyników zapytań w magazynie przy użyciu bezserwerowej puli SQL w usłudze Azure Synapse Analytics
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 instalacji 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, które są używane do zapisywania danych w magazynie wyjściowym.
Utwórz tabelę zewnętrzną podczas wybierania
Aby zapisać wyniki zapytania w magazynie, można użyć instrukcji CREATE EXTERNAL TABLE AS SELECT (CETAS).
Uwaga
Zmień pierwszy wiersz zapytania, tj. [mydbname], więc używasz utworzonej bazy danych.
USE [mydbname];
GO
CREATE DATABASE SCOPED CREDENTIAL [SasTokenWrite]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-04-18T20:42:12Z&st=2019-04-18T12:42:12Z&spr=https&sig=lQHczNvrk1KoYLCpFdSsMANd0ef9BrIPBNJ3VYEIq78%3D';
GO
CREATE EXTERNAL DATA SOURCE [MyDataSource] WITH (
LOCATION = 'https://<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. Nie można utworzyć tabel zewnętrznych w lokalizacji, w której masz już pewne dane.
Korzystanie z tabeli zewnętrznej
Możesz użyć tabeli zewnętrznej utworzonej za pośrednictwem instrukcji CETAS, takich jak zwykła tabela zewnętrzna.
Uwaga
Zmień pierwszy wiersz zapytania, tj. [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ż instrukcje CETAS nie zastąpią danych bazowych utworzonych w poprzednim wykonaniu. Zagłosuj na następujące elementy opinii, jeśli niektóre z nich są wymagane w Twoich scenariuszach lub zaproponuj nowe elementy w witrynie opinii na platformie Azure:
- Włączanie wstawiania nowych danych do tabeli zewnętrznej
- Włączanie usuwania danych z tabeli zewnętrznej
- Określanie partycji w instrukcjach CETAS
- Określanie rozmiarów i liczników plików
Jedynymi obsługiwanymi typami danych wyjściowych są Parquet i CSV. Możesz głosować na inne typy w witrynie opinii platformy Azure.
Następne kroki
Aby uzyskać więcej informacji na temat wykonywania zapytań dotyczących różnych typów plików, zobacz artykuły Query single CSV file (Wykonywanie zapytań względem pojedynczych plików CSV), Query Parquet files (Wykonywanie zapytań w plikach Parquet) i Query JSON files (Wykonywanie zapytań w plikach JSON ).