Szybki start: Używanie puli SQL bez użycia serwera
Bezserwerowa pula SQL usługi Synapse to bezserwerowa usługa zapytań, która umożliwia uruchamianie zapytań SQL dotyczących plików umieszczonych w usłudze Azure Storage. W tym przewodniku Szybki start dowiesz się, jak wykonywać zapytania dotyczące różnych typów plików przy użyciu bezserwerowej puli SQL. Obsługiwane formaty są wyświetlane w pliku OPENROWSET.
Ten przewodnik Szybki start przedstawia wykonywanie zapytań: pliki CSV, Apache Parquet i JSON.
Wymagania wstępne
Wybierz klienta SQL na potrzeby wykonywania zapytań:
- Azure Synapse Studio to narzędzie internetowe, za pomocą którego można przeglądać pliki w magazynie i tworzyć zapytania SQL.
- Program Azure Data Studio to narzędzie klienckie, które umożliwia uruchamianie zapytań SQL i notesów w ramach bazy danych usługi na żądanie.
- Program SQL Server Management Studio to narzędzie klienckie, które umożliwia uruchamianie zapytań SQL w ramach bazy danych usługi na żądanie.
Parametry dla tego przewodnika Szybki start:
Parametr | Opis |
---|---|
adres punktu końcowego usługi bezserwerowej puli SQL | Używana jako nazwa serwera |
bezserwerowy region punktu końcowego usługi puli SQL | Służy do określania, jakiego magazynu będziemy używać w przykładach |
Nazwa użytkownika i hasło dostępu do punktu końcowego | Służy do uzyskiwania dostępu do punktu końcowego |
Baza danych używana do tworzenia widoków | Baza danych używana jako punkt początkowy w przykładach |
Konfiguracja po raz pierwszy
Przed użyciem przykładów:
- Utwórz bazę danych dla widoków (w przypadku, gdy chcesz użyć widoków)
- Tworzenie poświadczeń używanych przez bezserwerową pulę SQL w celu uzyskiwania dostępu do plików w magazynie
Tworzenie bazy danych
Utwórz własną bazę danych do celów demonstracyjnych. Ta baza danych służy do tworzenia widoków i przykładowych zapytań w tym artykule.
Uwaga
Bazy danych są używane tylko do wyświetlania metadanych, a nie dla rzeczywistych danych. Zapisz nazwę bazy danych używaną do użycia w dalszej części przewodnika Szybki start.
Użyj następującego zapytania, zmieniając mydbname
na wybraną nazwę:
CREATE DATABASE mydbname
Tworzenie źródła danych
Aby uruchamiać zapytania przy użyciu bezserwerowej puli SQL, utwórz źródło danych, którego bezserwerowa pula SQL może używać do uzyskiwania dostępu do plików w magazynie. Wykonaj następujący fragment kodu, aby utworzyć źródło danych używane w przykładach w tej sekcji:
-- create master key that will protect the credentials:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = <enter very 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
);
Wykonywanie zapytań o pliki CSV
Na poniższej ilustracji przedstawiono podgląd pliku do odpytowania:
Poniższe zapytanie pokazuje, jak odczytać plik CSV, który nie zawiera wiersza nagłówka, z nowym wierszem w stylu systemu Windows i kolumnami rozdzielanymi przecinkami:
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
Schemat można określić w czasie kompilacji zapytania. Aby uzyskać więcej przykładów, zobacz jak wykonywać zapytania dotyczące pliku CSV.
Wykonywanie zapytań względem plików Parquet
Poniższy przykład przedstawia możliwości automatycznego wnioskowania schematu na potrzeby wykonywania zapytań dotyczących plików Parquet. Zwraca liczbę wierszy we wrześniu 2017 r. bez określania schematu.
Uwaga
Podczas odczytywania plików Parquet nie trzeba określać kolumn w OPENROWSET WITH
klauzuli . W takim przypadku bezserwerowa pula SQL korzysta z metadanych w pliku Parquet i wiąże kolumny według nazwy.
SELECT COUNT_BIG(*)
FROM OPENROWSET
(
BULK 'parquet/taxi/year=2017/month=9/*.parquet',
DATA_SOURCE = 'SqlOnDemandDemo',
FORMAT='PARQUET'
) AS nyc
Dowiedz się więcej na temat wykonywania zapytań dotyczących plików parquet.
Wykonywanie zapytań względem plików JSON
Przykładowy plik JSON
Pliki są przechowywane w kontenerze json, książkach folderów i zawierają pojedynczy wpis książki o następującej strukturze:
{
"_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"
}
Wykonywanie zapytań względem plików JSON
Poniższe zapytanie pokazuje, jak używać JSON_VALUE do pobierania wartości skalarnych (tytuł, wydawca) z książki z tytułem Probabilistic and Statistical Methods in Cryptology ( Wprowadzenie według wybranych artykułów):
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 by Selected Topics'
Ważne
Odczytujemy cały plik JSON jako pojedynczy wiersz/kolumnę. W związku z tym właściwość FIELDTERMINATOR, FIELDQUOTE i ROWTERMINATOR jest ustawiona na 0x0b, ponieważ nie spodziewamy się jej znalezienia w pliku.
Następne kroki
Teraz możesz kontynuować pracę z następującymi artykułami:
- Wykonywanie zapytań względem pojedynczego pliku CSV
- Wykonywanie zapytań względem folderów i wielu plików CSV
- Wykonywanie zapytań o określone pliki
- Wykonywanie zapytań względem plików Parquet
- Zapytanie o typy zagnieżdżone Parquet
- Wykonywanie zapytań dotyczących plików JSON
- Tworzenie i używanie widoków
- Tworzenie i używanie tabel zewnętrznych
- Utrwalanie wyniku zapytania w usłudze Azure Storage
- Wykonywanie zapytań względem pojedynczego pliku CSV