Azure Synapse Analytics'te sunucusuz SQL havuzu için depolama hesabı erişimini denetleme

Tip

Microsoft Fabric Data Warehouse geleceğe hazır mimariye, yerleşik yapay zekaya ve yeni özelliklere sahip data lake foundation üzerinde kurumsal ölçekli ilişkisel bir ambardır. Veri ambarı konusunda yeniyseniz Fabric Data Warehouse ile başlayın. Mevcut özel SQL havuzu iş yükleri, veri bilimi, gerçek zamanlı analiz ve raporlama genelinde yeni özelliklere erişmek için Fabric yükseltilebilir.

Sunucusuz SQL havuzu sorgusu dosyaları doğrudan Azure Depolama'dan okur. Azure depolamadaki dosyalara erişim izinleri iki düzeyde denetlenmektedir:

  • Depolama düzeyi - Kullanıcının temel alınan depolama dosyalarına erişme izni olmalıdır. Depolama yöneticiniz, Microsoft Entra sorumlusuna dosyaları okuma/yazma veya depolamaya erişmek için kullanılacak paylaşılan erişim imzası (SAS) anahtarı oluşturma izni vermelidir.
  • SQL hizmet düzeyi - Kullanıcının dış tablo kullanarak verileri okuma veya işlevi yürütme OPENROWSET izni vermesi gerekir. Bu bölümde gereken izinler hakkında daha fazla bilgi edinin.

Bu makalede, kullanabileceğiniz kimlik bilgileri türleri ve SQL ve Microsoft Entra kullanıcıları için kimlik bilgisi aramanın nasıl işlendiği açıklanmaktadır.

Depolama izinleri

Synapse Analytics çalışma alanındaki sunucusuz SQL havuzu, Azure Data Lake depolamada depolanan dosyaların içeriğini okuyabilir. SQL sorgusu yürüten bir kullanıcının dosyaları okumasını sağlamak için depolama izinlerini yapılandırmanız gerekir. Dosyalara erişimi etkinleştirmek için üç yöntem vardır:

  • Rol tabanlı erişim denetimi (RBAC), depolama alanınızın yerleştirildiği kiracıdaki bazı Microsoft Entra kullanıcılarına rol atamanızı sağlar. Okuyucu, depolama hesabında Depolama Blob Veri Okuyucusu, Depolama Blob Verileri Katkıda Bulunanı veya Depolama Blob Veri Sahibi rolünün üyesi olmalıdır. Azure depolama alanına veri yazan bir kullanıcının Depolama Blob Verileri Katkıda Bulunanı veya Depolama Blob Veri Sahibi rolünün üyesi olması gerekir. Depolama Sahibi rolü, kullanıcının aynı zamanda Depolama Veri Sahibi olduğunu göstermez.
  • Erişim Denetim Listeleri (ACL), Azure depolamadaki dosyalar ve dizinler üzerinde ayrıntılı Okuma(R), Yazma(W) ve Yürütme(X) izinleri tanımlamanızı sağlar. ACL, Microsoft Entra kullanıcılarına atanabilir. Okuyucuların Azure Depolama’daki bir yolda bulunan bir dosyayı okuyabilmeleri için dosya yolundaki tüm klasörlerde Yürütme (X) ACL izinlerine ve dosyanın kendisinde Okuma (R) ACL iznine sahip olmaları gerekir. Depolama katmanında ACL izinlerini ayarlama hakkında daha fazla bilgi edinin.
  • Paylaşılan erişim imzası (SAS), okuyucunun Azure Data Lake depolamadaki dosyalara sınırlı zaman belirteci kullanarak erişmesini sağlar. Okuyucunun Microsoft Entra kullanıcısı olarak kimliğinin doğrulanması bile gerekmez. SAS belirteci, okuyucuya verilen izinleri ve belirtecin geçerli olduğu süreyi içerir. SAS belirteci, aynı Microsoft Entra kiracısında olması gerekmeyen kullanıcılara zaman kısıtlı erişim için iyi bir seçimdir. SAS belirteci depolama hesabında veya belirli dizinlerde tanımlanabilir. Paylaşılan erişim imzalarını kullanarak Azure Depolama kaynaklarına sınırlı erişim izni verme hakkında daha fazla bilgi edinin.

Alternatif olarak anonim erişime izin vererek dosyalarınızı herkese açık hale getirebilirsiniz. Bu yaklaşım, nonpublic verileriniz varsa KULLANILMAMALIDIR.

Desteklenen depolama yetkilendirme türleri

Sunucusuz SQL havuzunda oturum açmış bir kullanıcının, dosyalar genel kullanıma açık değilse Azure Depolama'daki dosyalara erişme ve bu dosyaları sorgulama yetkisine sahip olması gerekir. Abonelik dışı depolamaya erişmek için dört yetkilendirme türü kullanabilirsiniz: kullanıcı kimliği, paylaşılan erişim imzası, hizmet sorumlusu ve yönetilen kimlik.

Note

Microsoft Entra geçişi çalışma alanı oluşturulduğunda varsayılan davranıştır.

"Microsoft Entra geçişi" olarak da bilinen kullanıcı kimliği, sunucusuz SQL havuzunda oturum açan Microsoft Entra kullanıcısının kimliğinin veri erişimini yetkilendirmek için kullanıldığı bir yetkilendirme türüdür. Verilere erişmeden önce Azure Depolama yöneticisinin Microsoft Entra kullanıcısına izin vermesi gerekir. Veritabanı kullanıcıları için desteklenen yetkilendirme türleri tablosunda belirtildiği gibi, SQL kullanıcı türü için desteklenmez.

Önemli

Microsoft Entra kimlik doğrulama belirteci istemci uygulamaları tarafından önbelleğe alınmış olabilir. Örneğin Power BI, Microsoft Entra belirteçlerini önbelleğe alır ve aynı belirteci bir saat boyunca yeniden kullanabilir. Sorgu yürütülürken belirtecin süresi dolarsa, uzun süreli sorgular başarısız olabilir. Sorgunun ortasında süresi dolan Microsoft Entra erişim belirtecinin neden olduğu sorgu hatalarıyla karşılaşıyorsanız, hizmet sorumlusuna, yönetilen kimliğe veya paylaşılan erişim imzasına geçmeyi göz önünde bulundurun.

Verilere erişmek için kimliğinizi kullanmak için Depolama Blob Veri Sahibi, Depolama Blob Verileri Katkıda Bulunanı veya Depolama Blob Veri Okuyucusu rolünün üyesi olmanız gerekir. Alternatif olarak, dosya ve klasörlere erişmek için ayrıntılı ACL kuralları belirtebilirsiniz. Depolama Hesabının Sahibi olsanız bile, yine de kendinizi Depolama Blob Verileri rollerinden birine eklemeniz gerekir. Azure Data Lake Store 2. Nesil'de erişim denetimi hakkında daha fazla bilgi edinmek için Azure Data Lake Storage 2. Nesil erişim denetimi makalesini gözden geçirin.

Kiracılar arası senaryolar

Azure Depolama Synapse sunucusuz SQL havuzundan farklı bir kiracıda olduğunda, önerilen yöntem Hizmet Sorumlusu aracılığıyla yetkilendirmedir. Yönetilen Kimlik desteklenmezken SAS yetkilendirmesi de mümkündür.

Yetkilendirme Türü Güvenlik duvarı korumalı depolama alanı Güvenlik duvarı olmayan korumalı depolama
SAS Desteklenir Desteklenir
Hizmet Sorumlusu Desteklenmiyor Desteklenir

Note

Azure Depolama bir Azure Depolama güvenlik duvarı tarafından korunuyorsa Hizmet Sorumlusu desteklenmez.

Veritabanları kullanıcıları için desteklenen yetkilendirme türleri

Aşağıdaki tabloda, Azure Synapse Analytics sunucusuz SQL uç noktasında farklı oturum açma yöntemleri için kullanılabilir Azure Depolama yetkilendirme türleri sağlanır:

Yetki türü SQL kullanıcısı Microsoft Entra kullanıcısı Hizmet Prensibi
Kullanıcı Kimliği Desteklenmiyor Desteklenir Desteklenir
SAS Desteklenir Desteklenir Desteklenir
Hizmet Prensibi Desteklenir Desteklenir Desteklenir
Yönetilen Kimlik Desteklenir Desteklenir Desteklenir

Desteklenen depolama ve yetkilendirme türleri

Yetkilendirme türlerinin ve Azure Depolama türlerinin aşağıdaki birleşimlerini kullanabilirsiniz:

Yetki türü Blob Depolama ADLS Gen1 ADLS Gen2
SAS Desteklenir Desteklenmez Desteklenir
Hizmet Prensibi Desteklenir Desteklenir Desteklenir
Yönetilen Kimlik Desteklenir Desteklenir Desteklenir
Kullanıcı Kimliği Desteklenir Desteklenir Desteklenir

Kiracılar arası senaryolar

Azure Depolama'nın Azure Synapse Analytics sunucusuz SQL havuzundan farklı bir kiracıda olduğu durumlarda, önerilen yöntem hizmet sorumlusu aracılığıyla yetkilendirmedir. Paylaşılan erişim imzası yetkilendirmesi de mümkündür. Yönetilen hizmet kimliği desteklenmez.

Yetkilendirme Türü Güvenlik duvarı korumalı depolama alanı Güvenlik duvarı olmayan korumalı depolama
SAS Desteklenir Desteklenir
Hizmet Prensibi Desteklenmiyor Desteklenir

Note

Azure Depolama bir Azure Depolama güvenlik duvarı tarafından korunuyorsa ve başka bir kiracıdaysa hizmet sorumlusu desteklenmez. Bunun yerine, paylaşılan erişim imzası (SAS) kullanın.

Güvenlik duvarı korumalı depolama alanı

Bir kaynak örneği kuralı oluşturarak depolama hesaplarını belirli bir sunucusuz SQL havuzuna erişime izin verecek şekilde yapılandırabilirsiniz. Güvenlik duvarıyla korunan depolama alanına erişirken Kullanıcı Kimliği veya Yönetilen Kimlik kullanın.

Note

Azure Depolama'daki güvenlik duvarı özelliği genel önizleme aşamasındadır ve tüm genel bulut bölgelerinde kullanılabilir.

Aşağıdaki tabloda, Azure Synapse Analytics sunucusuz SQL uç noktasında farklı oturum açma yöntemleri için güvenlik duvarı korumalı Azure Depolama yetkilendirme türleri sağlanır:

Yetki türü SQL kullanıcısı Microsoft Entra kullanıcısı Hizmet Prensibi
Kullanıcı Kimliği Desteklenmiyor Desteklenir Desteklenir
SAS Desteklenmiyor Desteklenmiyor Desteklenmiyor
Hizmet Prensibi Desteklenmiyor Desteklenmiyor Desteklenmiyor
Yönetilen Kimlik Desteklenir Desteklenir Desteklenir

Kullanıcı kimliği aracılığıyla güvenlik duvarıyla korunan depolamaya erişmek için Azure portalını veya Az.Storage PowerShell modülünü kullanabilirsiniz.

Azure portalı aracılığıyla Azure Depolama güvenlik duvarı yapılandırması

  1. Azure portalında Depolama Hesabınızı arayın.
  2. Ana gezinti menüsünde Ayarlar altında 'a gidin.
  3. Kaynak örnekleri bölümünde Azure Synapse çalışma alanınız için bir özel durum ekleyin.
  4. Microsoft.Synapse/workspaces bir Kaynak türü olarak seçin.
  5. Çalışma alanınızın adını Örnek adı olarak seçin.
  6. Kaydet'i seçin.

PowerShell aracılığıyla Azure Depolama güvenlik duvarı yapılandırması

Depolama hesabınızı yapılandırmak ve Azure Synapse çalışma alanı için özel durum eklemek için bu adımları izleyin.

  1. PowerShell'i açın veya PowerShell'i yükleyin.

  2. Aşağıdaki betikte olduğu gibi Az.Storage modülünün ve Az.Synapse modülünün en son sürümlerini yükleyin:

    Install-Module -Name Az.Storage -RequiredVersion 3.4.0
    Install-Module -Name Az.Synapse -RequiredVersion 0.7.0
    

    Önemli

    En az 3.4.0 sürümünü kullandığınızdan emin olun. Şu komutu çalıştırarak Az.Storage sürümünüzü de kontrol edebilirsiniz:

    Get-Module -ListAvailable -Name Az.Storage | Select Version
    
  3. Azure Kiracınıza bağlanın:

    Connect-AzAccount
    
  4. PowerShell'de değişkenleri tanımlama:

    • Kaynak grubu adı : Bunu Azure portalında depolama hesabınıza genel bakış bölümünde bulabilirsiniz.
    • Hesap Adı - Güvenlik duvarı kurallarıyla korunan depolama hesabının adı.
    • Kiracı Kimliği - Bunu Azure portalında, Microsoft Entra Id'de, Özellikler'in altında, Kiracı özellikleri'nde bulabilirsiniz.
    • Çalışma Alanı Adı - Azure Synapse çalışma alanının adı.
        $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
    

    Önemli

    PowerShell betiği tarafından döndürülen değerinin $resourceid şu şablonla eşleşmesi gerekir: /subscriptions/{subscription-id}/resourcegroups/{resource-group}/providers/Microsoft.Synapse/workspaces/{name-of-workspace}Kaynak gruplarını küçük harfle yazmak önemlidir.

  5. Azure depolama hesabı ağ kuralı ekleyin:

        $parameters = @{
            ResourceGroupName = $resourceGroupName
            Name = $accountName
            TenantId = $tenantId 
            ResourceId = $resourceId
        }
    
        Add-AzStorageAccountNetworkRule @parameters
    
  6. Depolama hesabı güvenlik duvarınıza depolama hesabı ağ kuralının uygulandığını doğrulayın. Aşağıdaki PowerShell betiği, önceki adımlardan $resourceid gelen değişkeni depolama hesabı ağ kuralının çıkışıyla karşılaştırır.

        $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
            }
        }
    

Kimlik Bilgileri

Azure Depolama'da bulunan bir dosyayı sorgulamak için sunucusuz SQL havuzu uç noktanızın kimlik doğrulama bilgilerini içeren bir kimlik bilgilerine sahip olması gerekir. İki tür kimlik bilgisi kullanılır:

  • Sunucu düzeyindeki kimlik bilgisi, OPENROWSET işlevi kullanılarak yürütülen geçici sorgular için kullanılır. Kimlik bilgisi adı depolama URL'si ile eşleşmelidir.
  • Dış tablolar için veritabanı kapsamlı kimlik bilgileri kullanılır. Depolamaya erişimde kullanılması gereken kimlik bilgilerini içeren dış tablo başvuruları DATA SOURCE .

Kimlik bilgilerini yönetme izinleri verme

Kimlik bilgilerini yönetme yeteneği vermek için:

  • Bir kullanıcının sunucu düzeyinde kimlik bilgileri oluşturmasına veya bırakmasına izin vermek için, yöneticinin ALTER ANY CREDENTIAL ana veritabanında oturum açma izni vermesi gerekir. Örneğin:

    GRANT ALTER ANY CREDENTIAL TO [login_name];
    
  • Bir kullanıcının veritabanı kapsamlı kimlik bilgileri oluşturmasına veya bırakmasına izin vermek için, yöneticinin CONTROL veritabanındaki izni kullanıcı veritabanındaki veritabanı kullanıcısına vermesi gerekir. Örneğin:

    GRANT CONTROL ON DATABASE::[database_name] TO [user_name];
    

Kimlik bilgilerini kullanma izinleri verme

Dış depolama alanına erişen veritabanı kullanıcılarının kimlik bilgilerini kullanma izni olmalıdır. Kimlik bilgilerini kullanmak için, kullanıcının belirli bir kimlik iznine sahip olması gerekir REFERENCES.

Oturum açma için sunucu düzeyinde kimlik bilgilerine izin vermek REFERENCES için ana veritabanında aşağıdaki T-SQL sorgusunu kullanın:

GRANT REFERENCES ON CREDENTIAL::[server-level_credential] TO [login_name];

Bir veritabanı kullanıcısına veritabanı kapsamlı kimlik bilgileri üzerinde REFERENCES yetki tanımlamak için, kullanıcı veritabanında aşağıdaki T-SQL sorgusunu kullanın.

GRANT REFERENCES ON DATABASE SCOPED CREDENTIAL::[database-scoped_credential] TO [user_name];

Sunucu düzeyinde kimlik bilgileri

Sunucu düzeyinde kimlik bilgileri, bir SQL oturumu, depolama hesabındaki dosyaları okumak için OPENROWSET işlevini DATA_SOURCE olmadan çalıştırdığında kullanılır.

Sunucu düzeyinde kimlik bilgilerinin adı, Azure depolamasının temel URL'siyle eşleşmeli ve isteğe bağlı olarak bir kapsayıcı adıyla devam etmelidir. CREATE CREDENTIAL çalıştırılarak bir kimlik bilgisi eklenir. CREDENTIAL NAME bağımsız değişkenini sağlamalısınız.

Note

FOR CRYPTOGRAPHIC PROVIDER argümanı desteklenmiyor.

Sunucu düzeyinde KIMLIK BILGISI adı şu biçimle eşleşmelidir: <prefix>://<storage_account_path>[/<container_name>]. Depolama hesabı yolları aşağıdaki tabloda açıklanmıştır:

Dış Veri Kaynağı Önek Depolama hesabı yolu
Azure Blob Depolama https <storage_account>.blob.core.windows.net
1. Nesil Azure Data Lake Storage https <storage_account>.azuredatalakestore.net/webhdfs/v1
Azure Data Lake Storage 2. Nesil https <storage_account>.dfs.core.windows.net

Sunucu düzeyinde kimlik bilgileri daha sonra aşağıdaki kimlik doğrulama türlerini kullanarak Azure depolamaya erişebilir:

Microsoft Entra kullanıcıları, Depolama Blobu Veri Sahibi, Depolama Blob Verileri Katkıda Bulunanı veya Depolama Blob Veri Okuyucusu rolünün üyesi olmaları durumunda Azure depolamadaki herhangi bir dosyaya erişebilir. Microsoft Entra kullanıcılarının depolamaya erişmek için kimlik bilgilerine ihtiyacı yoktur.

SQL kimliği doğrulanmış kullanıcılar depolama alanına erişmek için Microsoft Entra kimlik doğrulamasını kullanamaz. Yönetilen Kimlik, SAS Anahtarı, Hizmet Sorumlusu kullanarak veya depolamaya genel erişim varsa, bir veritabanı kimlik bilgileri aracılığıyla depolamaya erişebilirler.

Veritabanı kapsamına özel kimlik bilgileri

Veritabanı kapsamlı kimlik bilgileri, herhangi bir güvenlik ilkesi OPENROWSET işlevini çağırdığında veya dış tablodan, ortak dosyalara erişmeyen verileri seçtiğinde kullanılır. Veritabanı kapsamlı kimlik bilgilerinin depolama hesabının adıyla eşleşmesi gerekmez; depolama konumunu tanımlayan VERİ KAYNAĞI'nda referans alınır.

Veritabanı kapsamlı kimlik bilgileri aşağıdaki kimlik doğrulama türlerini kullanarak Azure depolamaya erişimi etkinleştirir:

Microsoft Entra kullanıcıları, Depolama Blob Veri Sahibi, Depolama Blob Verileri Katkıda Bulunanı veya Depolama Blob Veri Okuyucusu rollerinin üyesi olmaları durumunda Azure depolamadaki tüm dosyalara erişebilir. Microsoft Entra kullanıcılarının depolamaya erişmek için kimlik bilgilerine ihtiyacı yoktur.

CREATE EXTERNAL DATA SOURCE mysample
WITH (    LOCATION   = 'https://<storage_account>.dfs.core.windows.net/<container>/<path>'
)

SQL kimliği doğrulanmış kullanıcılar depolama alanına erişmek için Microsoft Entra kimlik doğrulamasını kullanamaz. Yönetilen Kimlik, SAS Anahtarı, Hizmet Sorumlusu veya depolamaya genel erişim varsa bir veritabanı kimlik bilgisi kullanarak depolamaya erişebilirler.

Veritabanı kapsamlı kimlik bilgileri, dış veri kaynaklarında bu depolamaya erişmek için hangi kimlik doğrulama yönteminin kullanılacağını belirtmek için kullanılır:

CREATE EXTERNAL DATA SOURCE mysample
WITH (    LOCATION   = 'https://<storage_account>.dfs.core.windows.net/<container>/<path>',
          CREDENTIAL = <name of database scoped credential> 
)

Örnekler

Genel kullanıma açık bir veri kaynağına erişme

Genel kullanıma açık veri kaynağına erişen bir tablo oluşturmak için aşağıdaki betiği kullanın.

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] )

Veritabanı kullanıcısı, dış tablo veya veri kaynağına başvuran OPENROWSET işlevini kullanarak veri kaynağındaki dosyaların içeriğini okuyabilir:

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

Kimlik bilgilerini kullanarak veri kaynağına erişme

SAS belirtecini, Microsoft Entra kullanıcı kimliğini veya çalışma alanının yönetilen kimliğini kullanarak Azure depolamaya erişen bir dış tablo oluşturmak için aşağıdaki betiği değiştirin.

-- 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] );

Veritabanı kullanıcısı, dış tablo veya veri kaynağına başvuran OPENROWSET işlevini kullanarak veri kaynağındaki dosyaların içeriğini okuyabilir:

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

Bu makaleler farklı klasör türlerini, dosya türlerini sorgulamayı ve görünümleri oluşturma ve kullanma hakkında bilgi edinmenize yardımcı olur: