Kontrolowanie dostępu do konta magazynu dla bezserwerowej puli SQL w usłudze Azure Synapse Analytics
Zapytanie bezserwerowej puli SQL odczytuje pliki bezpośrednio z usługi Azure Storage. Uprawnienia dostępu do plików w usłudze Azure Storage są kontrolowane na dwóch poziomach:
- Poziom magazynu — użytkownik powinien mieć uprawnienia dostępu do podstawowych plików magazynu. Administrator magazynu powinien zezwolić podmiotowi zabezpieczeń firmy Microsoft na odczyt/zapis plików lub wygenerować klucz sygnatury dostępu współdzielonego (SAS), który będzie używany do uzyskiwania dostępu do magazynu.
- Poziom usługi SQL — użytkownik powinien mieć uprawnienie do odczytywania danych przy użyciu tabeli zewnętrznej lub wykonywania
OPENROWSET
funkcji. Przeczytaj więcej na temat wymaganych uprawnień w tej sekcji.
W tym artykule opisano typy poświadczeń, których można użyć, oraz sposób, w jaki wyszukiwanie poświadczeń jest wprowadzane dla użytkowników SQL i Microsoft Entra.
Uprawnienia magazynu
Bezserwerowa pula SQL w obszarze roboczym usługi Synapse Analytics może odczytywać zawartość plików przechowywanych w usłudze Azure Data Lake Storage. Należy skonfigurować uprawnienia do magazynu, aby umożliwić użytkownikowi, który wykonuje zapytanie SQL w celu odczytania plików. Istnieją trzy metody włączania dostępu do plików:
- Kontrola dostępu oparta na rolach (RBAC) umożliwia przypisanie roli do niektórych użytkowników firmy Microsoft Entra w dzierżawie, w której znajduje się magazyn. Czytelnik musi być członkiem roli Czytelnik danych obiektu blob usługi Storage, Współautor danych obiektu blob usługi Storage lub Właściciel danych obiektu blob usługi Storage na koncie magazynu. Użytkownik, który zapisuje dane w usłudze Azure Storage, musi być członkiem roli Współautor danych obiektu blob usługi Storage lub Właściciel danych obiektu blob usługi Storage. Rola Właściciel magazynu nie oznacza, że użytkownik jest również właścicielem danych magazynu.
- Listy kontroli dostępu (ACL) umożliwiają definiowanie precyzyjnych uprawnień do odczytu(R), zapisu(W) i Wykonywania(X) dla plików i katalogów w usłudze Azure Storage. Listę ACL można przypisać do użytkowników usługi Microsoft Entra. Jeśli czytelnicy chcą odczytać plik w ścieżce w usłudze Azure Storage, muszą mieć uprawnienie listy ACL do wykonywania (X) dla każdego folderu w ścieżce pliku oraz uprawnienie listy ACL do odczytu (R) dla wybranego pliku. Dowiedz się więcej na temat ustawiania uprawnień listy ACL w warstwie magazynu.
- Sygnatura dostępu współdzielonego umożliwia czytelnikowi dostęp do plików w usłudze Azure Data Lake Storage przy użyciu tokenu ograniczonego czasowo. Czytelnik nie musi nawet być uwierzytelniany jako użytkownik Firmy Microsoft Entra. Token SAS zawiera uprawnienia przyznane czytelnikowi oraz okres ważności tokenu. Token SAS jest dobrym wyborem dla ograniczonego czasu dostępu do każdego użytkownika, który nawet nie musi znajdować się w tej samej dzierżawie firmy Microsoft Entra. Tokeny SAS można definiować na koncie magazynu lub w określonych katalogach. Dowiedz się więcej o udzielaniu ograniczonego dostępu do zasobów w usłudze Azure Storage za pomocą sygnatur dostępu współdzielonego.
Alternatywnym rozwiązaniem jest publiczne udostępnienie plików przez zezwolenie na dostęp anonimowy. NIE NALEŻY stosować tego podejścia w przypadku danych niepublicznych.
Obsługiwane typy autoryzacji magazynu
Użytkownik, który zalogował się do bezserwerowej puli SQL, musi być autoryzowany do uzyskiwania dostępu do plików i wykonywania zapytań względem plików w usłudze Azure Storage, jeśli pliki nie są publicznie dostępne. Do uzyskiwania dostępu do magazynu niepublikowego można użyć czterech typów autoryzacji: tożsamości użytkownika, sygnatury dostępu współdzielonego, jednostki usługi i tożsamości zarządzanej.
Uwaga
Przekazywanie w usłudze Microsoft Entra jest zachowaniem domyślnym podczas tworzenia obszaru roboczego.
- Tożsamość użytkownika
- Sygnatura dostępu współdzielonego
- Jednostka usługi
- Tożsamość usługi zarządzanej
- Dostęp anonimowy
Tożsamość użytkownika, znana również jako "Przekazywanie firmy Microsoft Entra", to typ autoryzacji, w którym tożsamość użytkownika Microsoft Entra zalogowanego do bezserwerowej puli SQL jest używana do autoryzacji dostępu do danych. Przed uzyskaniem dostępu do danych administrator usługi Azure Storage musi udzielić uprawnień użytkownikowi Firmy Microsoft Entra. Jak wskazano w tabeli Obsługiwane typy autoryzacji dla użytkowników bazy danych, nie jest obsługiwane dla typu użytkownika SQL.
Ważne
Token uwierzytelniania Entra firmy Microsoft może być buforowany przez aplikacje klienckie. Na przykład usługa Power BI buforuje tokeny firmy Microsoft Entra i ponownie używa tego samego tokenu przez godzinę. Długotrwałe zapytania mogą zakończyć się niepowodzeniem, jeśli token wygaśnie w trakcie wykonywania zapytania. Jeśli występują błędy zapytań spowodowane przez token dostępu firmy Microsoft Entra wygasający w trakcie zapytania, rozważ przełączenie się na jednostkę usługi, tożsamość zarządzaną lub sygnaturę dostępu współdzielonego.
Aby uzyskać dostęp do danych, musisz być członkiem roli Właściciel danych obiektu blob usługi Storage, Współautor danych obiektu blob usługi Storage lub Czytelnik danych obiektu blob usługi Storage. Alternatywnie można określić szczegółowe reguły listy ACL w celu uzyskiwania dostępu do plików i folderów. Nawet jeśli jesteś właścicielem konta magazynu, nadal musisz dodać siebie do jednej z ról danych obiektu blob usługi Storage. Aby dowiedzieć się więcej na temat kontroli dostępu w usłudze Azure Data Lake Store Gen2, zapoznaj się z artykułem Kontrola dostępu w usłudze Azure Data Lake Storage Gen2 .
Scenariusze między dzierżawami
W przypadkach, gdy usługa Azure Storage znajduje się w innej dzierżawie niż bezserwerowa pula SQL usługi Synapse, autoryzacja za pośrednictwem jednostki usługi jest zalecaną metodą. Autoryzacja sygnatury dostępu współdzielonego jest również możliwa, chociaż tożsamość zarządzana nie jest obsługiwana.
Typ autoryzacji | Magazyn chroniony przez zaporę | magazyn chroniony przez zaporę |
---|---|---|
SAS | Obsługiwane | Obsługiwane |
Jednostka usługi | Nieobsługiwane | Obsługiwane |
Uwaga
Jeśli usługa Azure Storage jest chroniona przez zaporę usługi Azure Storage, jednostka usługi nie będzie obsługiwana.
Obsługiwane typy autoryzacji dla użytkowników baz danych
Poniższa tabela zawiera dostępne typy autoryzacji usługi Azure Storage dla różnych metod logowania do bezserwerowego punktu końcowego SQL usługi Azure Synapse Analytics:
Typ autoryzacji | Użytkownik SQL | Użytkownik firmy Microsoft Entra | Jednostka usługi |
---|---|---|---|
Tożsamość użytkownika | Nieobsługiwane | Obsługiwane | Obsługiwane |
SAS | Obsługiwane | Obsługiwane | Obsługiwane |
Jednostka usługi | Obsługiwane | Obsługiwane | Obsługiwane |
Tożsamość zarządzana | Obsługiwane | Obsługiwane | Obsługiwane |
Obsługiwane magazyny i typy autoryzacji
Można użyć następujących kombinacji typów autoryzacji i typów usługi Azure Storage:
Typ autoryzacji | Blob Storage | ADLS Gen1 | ADLS Gen2 |
---|---|---|---|
SAS | Obsługiwane | Nieobsługiwane | Obsługiwane |
Jednostka usługi | Obsługiwane | Obsługiwane | Obsługiwane |
Tożsamość zarządzana | Obsługiwane | Obsługiwane | Obsługiwane |
Tożsamość użytkownika | Obsługiwane | Obsługiwane | Obsługiwane |
Scenariusze między dzierżawami
W przypadkach, gdy usługa Azure Storage znajduje się w innej dzierżawie niż bezserwerowa pula SQL usługi Azure Synapse Analytics, autoryzacja za pośrednictwem jednostki usługi jest zalecaną metodą. Autoryzacja sygnatury dostępu współdzielonego jest również możliwa. Tożsamość usługi zarządzanej nie jest obsługiwana.
Typ autoryzacji | Magazyn chroniony przez zaporę | magazyn chroniony przez zaporę |
---|---|---|
SAS | Obsługiwane | Obsługiwane |
Jednostka usługi | Nieobsługiwane | Obsługiwane |
Uwaga
Jeśli usługa Azure Storage jest chroniona przez zaporę usługi Azure Storage i znajduje się w innej dzierżawie, jednostka usługi nie będzie obsługiwana. Zamiast tego należy użyć sygnatury dostępu współdzielonego (SAS).
Magazyn chroniony przez zaporę
Możesz skonfigurować konta magazynu, aby zezwolić na dostęp do określonej bezserwerowej puli SQL, tworząc regułę wystąpienia zasobu. W przypadku uzyskiwania dostępu do magazynu chronionego za pomocą zapory użyj tożsamości użytkownika lub tożsamości zarządzanej.
Uwaga
Funkcja zapory w usłudze Azure Storage jest dostępna w publicznej wersji zapoznawczej i jest dostępna we wszystkich regionach chmury publicznej.
Poniższa tabela zawiera dostępne typy autoryzacji usługi Azure Storage chronione przez zaporę dla różnych metod logowania do bezserwerowego punktu końcowego SQL usługi Azure Synapse Analytics:
Typ autoryzacji | Użytkownik SQL | Użytkownik firmy Microsoft Entra | Jednostka usługi |
---|---|---|---|
Tożsamość użytkownika | Nieobsługiwane | Obsługiwane | Obsługiwane |
SAS | Nieobsługiwane | Nieobsługiwane | Nieobsługiwane |
Jednostka usługi | Nieobsługiwane | Nieobsługiwane | Nieobsługiwane |
Tożsamość zarządzana | Obsługiwane | Obsługiwane | Obsługiwane |
- Tożsamość użytkownika
- Sygnatura dostępu współdzielonego
- Jednostka usługi
- Tożsamość usługi zarządzanej
- Dostęp anonimowy
Aby uzyskać dostęp do magazynu chronionego za pomocą zapory za pośrednictwem tożsamości użytkownika, możesz użyć witryny Azure Portal lub modułu Az.Storage Programu PowerShell.
Konfiguracja zapory usługi Azure Storage za pośrednictwem witryny Azure Portal
- Wyszukaj konto magazynu w witrynie Azure Portal.
- W menu nawigacji głównej przejdź do pozycji Sieć w obszarze Ustawienia.
- W sekcji Wystąpienia zasobów dodaj wyjątek dla obszaru roboczego usługi Azure Synapse.
- Wybierz
Microsoft.Synapse/workspaces
jako typ zasobu. - Wybierz nazwę obszaru roboczego jako nazwę wystąpienia.
- Wybierz pozycję Zapisz.
Konfiguracja zapory usługi Azure Storage za pośrednictwem programu PowerShell
Wykonaj następujące kroki, aby skonfigurować konto magazynu i dodać wyjątek dla obszaru roboczego usługi Azure Synapse.
Otwórz program PowerShell lub zainstaluj program PowerShell.
Zainstaluj najnowsze wersje modułu Az.Storage i modułu Az.Synapse, na przykład w następującym skrypcie:
Install-Module -Name Az.Storage -RequiredVersion 3.4.0 Install-Module -Name Az.Synapse -RequiredVersion 0.7.0
Ważne
Upewnij się, że używasz co najmniej wersji 3.4.0. Aby sprawdzić wersję modułu Az.Storage, uruchom następujące polecenie:
Get-Module -ListAvailable -Name Az.Storage | Select Version
Połączenie do dzierżawy platformy Azure:
Connect-AzAccount
Zdefiniuj zmienne w programie PowerShell:
- Nazwa grupy zasobów — tę pozycję można znaleźć w witrynie Azure Portal w obszarze Przegląd konta magazynu.
- Nazwa konta — nazwa konta magazynu chronionego przez reguły zapory.
- Identyfikator dzierżawy — tę pozycję można znaleźć w witrynie Azure Portal w obszarze Identyfikator entra firmy Microsoft w obszarze Właściwości we właściwościach dzierżawy.
- Nazwa obszaru roboczego — nazwa obszaru roboczego usługi Azure Synapse.
$resourceGroupName = "<resource group name>" $accountName = "<storage account name>" $tenantId = "<tenant id>" $workspaceName = "<Azure Synapse workspace name>" $workspace = Get-AzSynapseWorkspace -Name $workspaceName $resourceId = $workspace.Id $index = $resourceId.IndexOf("/resourceGroups/", 0) # Replace G with g - /resourceGroups/ to /resourcegroups/ $resourceId = $resourceId.Substring(0,$index) + "/resourcegroups/" ` + $resourceId.Substring($index + "/resourceGroups/".Length) $resourceId
Ważne
Wartość zwrócona
$resourceid
przez skrypt programu PowerShell powinna być zgodna z tym szablonem:/subscriptions/{subscription-id}/resourcegroups/{resource-group}/providers/Microsoft.Synapse/workspaces/{name-of-workspace}
Ważne jest, aby zapisywać grupy zasobów w małych literach .Dodaj regułę sieciową konta usługi Azure Storage:
$parameters = @{ ResourceGroupName = $resourceGroupName Name = $accountName TenantId = $tenantId ResourceId = $resourceId } Add-AzStorageAccountNetworkRule @parameters
Sprawdź, czy reguła sieci konta magazynu została zastosowana w zaporze konta magazynu. Poniższy skrypt programu PowerShell porównuje zmienną
$resourceid
z poprzednich kroków do danych wyjściowych reguły sieciowej konta magazynu.$parameters = @{ ResourceGroupName = $resourceGroupName Name = $accountName } $rule = Get-AzStorageAccountNetworkRuleSet @parameters $rule.ResourceAccessRules | ForEach-Object { if ($_.ResourceId -cmatch "\/subscriptions\/(\w\-*)+\/resourcegroups\/(.)+") { Write-Host "Storage account network rule is successfully configured." -ForegroundColor Green $rule.ResourceAccessRules } else { Write-Host "Storage account network rule is not configured correctly. Remove this rule and follow the steps in detail." -ForegroundColor Red $rule.ResourceAccessRules } }
Poświadczenia
Aby wysłać zapytanie do pliku znajdującego się w usłudze Azure Storage, punkt końcowy bezserwerowej puli SQL wymaga poświadczenia zawierającego informacje dotyczące uwierzytelniania. Używane są dwa typy poświadczeń:
- Poświadczenia na poziomie serwera są używane do wykonywania zapytań ad hoc przy użyciu
OPENROWSET
funkcji. Nazwa poświadczeń musi być zgodna z adresem URL magazynu. - Poświadczenia o zakresie bazy danych są używane dla tabel zewnętrznych. Odwołania do tabeli
DATA SOURCE
zewnętrznej z poświadczeniami, które powinny być używane do uzyskiwania dostępu do magazynu.
Udzielanie uprawnień do zarządzania poświadczeniami
Aby udzielić możliwości zarządzania poświadczeniami:
Aby zezwolić użytkownikowi na tworzenie lub usuwanie poświadczeń na poziomie serwera, administrator musi udzielić
ALTER ANY CREDENTIAL
uprawnień do logowania w bazie danych master. Przykład:GRANT ALTER ANY CREDENTIAL TO [login_name];
Aby zezwolić użytkownikowi na tworzenie lub usuwanie poświadczeń o określonym zakresie bazy danych, administrator musi przyznać
CONTROL
użytkownikowi bazy danych uprawnienia do bazy danych w bazie danych użytkownika. Przykład:GRANT CONTROL ON DATABASE::[database_name] TO [user_name];
Udzielanie uprawnień do używania poświadczeń
Użytkownicy bazy danych, którzy uzyskują dostęp do magazynu zewnętrznego, muszą mieć uprawnienia do używania poświadczeń. Aby użyć poświadczeń, użytkownik musi mieć REFERENCES
uprawnienia do określonego poświadczenia.
Aby udzielić REFERENCES
uprawnień na potrzeby logowania na poziomie serwera, użyj następującego zapytania T-SQL w bazie danych master:
GRANT REFERENCES ON CREDENTIAL::[server-level_credential] TO [login_name];
Aby udzielić REFERENCES
uprawnienia do poświadczeń o zakresie bazy danych dla użytkownika bazy danych, użyj następującego zapytania T-SQL w bazie danych użytkownika:
GRANT REFERENCES ON DATABASE SCOPED CREDENTIAL::[database-scoped_credential] TO [user_name];
Poświadczenia na poziomie serwera
Poświadczenia na poziomie serwera są używane, gdy identyfikator logowania SQL wywołuje OPENROWSET
funkcję bez elementu DATA_SOURCE
do odczytu plików na koncie magazynu.
Nazwa poświadczeń na poziomie serwera musi być zgodna z podstawowym adresem URL usługi Azure Storage, po którym opcjonalnie następuje nazwa kontenera. Poświadczenie jest dodawane przez uruchomienie polecenia CREATE CREDENTIAL. Musisz podać CREDENTIAL NAME
argument .
Uwaga
Argument FOR CRYPTOGRAPHIC PROVIDER
nie jest obsługiwany.
Nazwa POŚWIADCZENIA na poziomie serwera musi być zgodna z następującym formatem: <prefix>://<storage_account_path>[/<container_name>]
. Ścieżki konta magazynu opisano w poniższej tabeli:
Zewnętrzne źródło danych | Prefiks | Ścieżka konta magazynu |
---|---|---|
Azure Blob Storage | https |
<storage_account>.blob.core.windows.net |
Usługa Azure Data Lake Storage 1. generacji | https |
<storage_account>.azuredatalakestore.net/webhdfs/v1 |
Usługa Azure Data Lake Storage 2. generacji | https |
<storage_account>.dfs.core.windows.net |
Poświadczenia na poziomie serwera mogą następnie uzyskiwać dostęp do usługi Azure Storage przy użyciu następujących typów uwierzytelniania:
- Tożsamość użytkownika
- Sygnatura dostępu współdzielonego
- Jednostka usługi
- Tożsamość zarządzana
- Dostęp publiczny
Użytkownicy firmy Microsoft Entra mogą uzyskać dostęp do dowolnego pliku w usłudze Azure Storage, jeśli są członkami roli Właściciel danych obiektu blob usługi Storage, Współautor danych obiektu blob usługi Storage lub Czytelnik danych obiektu blob usługi Storage. Użytkownicy firmy Microsoft Entra nie potrzebują poświadczeń, aby uzyskać dostęp do magazynu.
Użytkownicy uwierzytelnieni w usłudze SQL nie mogą uzyskiwać dostępu do magazynu przy użyciu uwierzytelniania firmy Microsoft Entra. Mogą oni uzyskiwać dostęp do magazynu za pośrednictwem poświadczeń bazy danych przy użyciu tożsamości zarządzanej, klucza sygnatury dostępu współdzielonego, jednostki usługi lub publicznego dostępu do magazynu.
Poświadczenia o zakresie bazy danych
Poświadczenia o zakresie bazy danych są używane, gdy wszystkie główne wywołania OPENROWSET
funkcji z DATA_SOURCE
lub wybierają dane z tabeli zewnętrznej, które nie uzyskują dostępu do plików publicznych. Poświadczenie o zakresie bazy danych nie musi być zgodne z nazwą konta magazynu, do którego odwołuje się źródło danych, które definiuje lokalizację magazynu.
Poświadczenia o zakresie bazy danych umożliwiają dostęp do usługi Azure Storage przy użyciu następujących typów uwierzytelniania:
- Tożsamość firmy Microsoft Entra
- Sygnatura dostępu współdzielonego
- Jednostka usługi
- Tożsamość zarządzana
- Dostęp publiczny
Użytkownicy firmy Microsoft Entra mogą uzyskać dostęp do dowolnego pliku w usłudze Azure Storage, jeśli są członkami ról właściciela danych obiektu blob usługi Storage, współautora danych obiektu blob usługi Storage lub czytelnika danych obiektu blob usługi Storage. Użytkownicy firmy Microsoft Entra nie potrzebują poświadczeń, aby uzyskać dostęp do magazynu.
CREATE EXTERNAL DATA SOURCE mysample
WITH ( LOCATION = 'https://<storage_account>.dfs.core.windows.net/<container>/<path>'
)
Użytkownicy uwierzytelnieni w usłudze SQL nie mogą uzyskiwać dostępu do magazynu przy użyciu uwierzytelniania firmy Microsoft Entra. Mogą oni uzyskiwać dostęp do magazynu za pośrednictwem poświadczeń bazy danych przy użyciu tożsamości zarządzanej, klucza sygnatury dostępu współdzielonego, jednostki usługi lub publicznego dostępu do magazynu.
Poświadczenia o zakresie bazy danych są używane w zewnętrznych źródłach danych w celu określenia, która metoda uwierzytelniania będzie używana do uzyskiwania dostępu do tego magazynu:
CREATE EXTERNAL DATA SOURCE mysample
WITH ( LOCATION = 'https://<storage_account>.dfs.core.windows.net/<container>/<path>',
CREDENTIAL = <name of database scoped credential>
)
Przykłady
Uzyskiwanie dostępu do publicznie dostępnego źródła danych
Użyj poniższego skryptu, aby utworzyć tabelę, która uzyskuje dostęp do publicznie dostępnego źródła danych.
CREATE EXTERNAL FILE FORMAT [SynapseParquetFormat]
WITH ( FORMAT_TYPE = PARQUET)
GO
CREATE EXTERNAL DATA SOURCE publicData
WITH ( LOCATION = 'https://<storage_account>.dfs.core.windows.net/<public_container>/<path>' )
GO
CREATE EXTERNAL TABLE dbo.userPublicData ( [id] int, [first_name] varchar(8000), [last_name] varchar(8000) )
WITH ( LOCATION = 'parquet/user-data/*.parquet',
DATA_SOURCE = [publicData],
FILE_FORMAT = [SynapseParquetFormat] )
Użytkownik bazy danych może odczytywać zawartość plików ze źródła danych przy użyciu tabeli zewnętrznej lub funkcji OPENROWSET , która odwołuje się do źródła danych:
SELECT TOP 10 * FROM dbo.userPublicData;
GO
SELECT TOP 10 * FROM OPENROWSET(BULK 'parquet/user-data/*.parquet',
DATA_SOURCE = 'mysample',
FORMAT='PARQUET') as rows;
GO
Uzyskiwanie dostępu do źródła danych przy użyciu poświadczeń
Zmodyfikuj poniższy skrypt, aby utworzyć tabelę zewnętrzną, która uzyskuje dostęp do usługi Azure Storage przy użyciu tokenu SAS, tożsamości microsoft Entra użytkownika lub tożsamości zarządzanej obszaru roboczego.
-- Create master key in databases with some password (one-off per database)
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<strong password>'
GO
-- Create databases scoped credential that use Managed Identity, SAS token or service principal. User needs to create only database-scoped credentials that should be used to access data source:
CREATE DATABASE SCOPED CREDENTIAL WorkspaceIdentity
WITH IDENTITY = 'Managed Identity'
GO
CREATE DATABASE SCOPED CREDENTIAL SasCredential
WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = 'sv=2019-10-1********ZVsTOL0ltEGhf54N8KhDCRfLRI%3D'
GO
CREATE DATABASE SCOPED CREDENTIAL SPNCredential WITH
IDENTITY = '**44e*****8f6-ag44-1890-34u4-22r23r771098@https://login.microsoftonline.com/**do99dd-87f3-33da-33gf-3d3rh133ee33/oauth2/token'
, SECRET = '.7OaaU_454azar9WWzLL.Ea9ePPZWzQee~'
GO
-- Create data source that one of the credentials above, external file format, and external tables that reference this data source and file format:
CREATE EXTERNAL FILE FORMAT [SynapseParquetFormat] WITH ( FORMAT_TYPE = PARQUET)
GO
CREATE EXTERNAL DATA SOURCE mysample
WITH ( LOCATION = 'https://<storage_account>.dfs.core.windows.net/<container>/<path>'
-- Uncomment one of these options depending on authentication method that you want to use to access data source:
--,CREDENTIAL = WorkspaceIdentity
--,CREDENTIAL = SasCredential
--,CREDENTIAL = SPNCredential
)
CREATE EXTERNAL TABLE dbo.userData ( [id] int, [first_name] varchar(8000), [last_name] varchar(8000) )
WITH ( LOCATION = 'parquet/user-data/*.parquet',
DATA_SOURCE = [mysample],
FILE_FORMAT = [SynapseParquetFormat] );
Użytkownik bazy danych może odczytywać zawartość plików ze źródła danych przy użyciu tabeli zewnętrznej lub funkcji OPENROWSET , która odwołuje się do źródła danych:
SELECT TOP 10 * FROM dbo.userdata;
GO
SELECT TOP 10 * FROM OPENROWSET(BULK 'parquet/user-data/*.parquet', DATA_SOURCE = 'mysample', FORMAT='PARQUET') as rows;
GO
Następne kroki
Te artykuły ułatwiają poznanie sposobu wykonywania zapytań dotyczących różnych typów folderów, typów plików oraz tworzenia i używania widoków:
- 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
- Tworzenie widoków i korzystanie z nich
- Wykonywanie zapytań dotyczących plików JSON
- Zapytanie o typy zagnieżdżone Parquet