Megosztás a következőn keresztül:


Adatok csatlakoztatása, lekérdezése és exportálása a PolyBase használatával

Vonatkozik a következőkre: SQL Server 2016 (13.x) és későbbi verziók Azure SQL DatabaseAzure SQL Managed InstanceSQL database in Microsoft Fabric

Az adatvirtualizálással Transact-SQL (T-SQL) lekérdezéseket futtathat külső adatokon anélkül, hogy betöltenél az adatbázisba. A PolyBase az adatbázismotor funkciója, amely adatvirtualizálást valósít meg az SQL Server és az Azure SQL között. Definiálhat külső adatforrást, választható fájlformátumot és külső táblát, majd lekérdezheti a külső táblát a többi táblához SELECT hasonlóan.

Ez az útmutató a következőkben nyújt segítséget:

  • Ismerje meg, hogy mely PolyBase-funkciókat támogatja az SQL-platform és a verzió.
  • Válasszon a OPENROWSET, a külső táblák és a BULK INSERT között az adatok lekérdezéséhez vagy beviteléhez.
  • Kövesse a gyakori forgatókönyvek részletes hivatkozásait.
  • Vizsgálja meg a termelési munkaterhelések teljesítményét, hibaelhárítását és legjobb gyakorlatát.

Gyakori használati esetek

Az alábbi táblázat a lehetséges használati forgatókönyveket ismerteti.

Scenario Használd
Alkalmi fájlfeltárás OPENROWSET(BULK ...)
Újrahasználható fájl lekérdezése BI-hoz/jelentéskészítéshez Külső táblák fájlok felett
Adatbázisközi lekérdezés (SQL Server, Oracle, Teradata, MongoDB, ODBC) PolyBase-összekötők külső táblákkal
Lekérdezési eredmények exportálása fájlokba CREATE EXTERNAL TABLE AS SELECT (CETAS)
Tömeges betöltés táblákba BULK INSERTvagy OPENROWSET(BULK ...)INSERT ... SELECT

Mely funkciók érhetők el hol?

Az alábbi táblázat bemutatja, hogy mely alapvető PolyBase- és adatvirtualizálási funkciók érhetők el az egyes SQL-platformokon. Ez a táblázat a részletes útmutatók használata előtt határozza meg, hogy mit tehet a platformon.

Funkció SQL Server 2019 SQL Server 2022 SQL Server 2025 Azure SQL Database Azure SQL Managed Instance SQL-adatbázis a Microsoft Fabricben
külső táblák Igen Igen Igen Igen Igen Igen
OPENROWSET (NAGY MENNYISÉGŰ) Igen 1 Igen Igen Igen Igen Igen
CETAS (exportálás) No Igen Igen No Igen No
CSV/tagolt fájlok Igen 2 Igen Igen Igen Igen Igen
Parquet-fájlok No Igen Igen Igen Igen Igen
Delta Lake-táblák No Igen Igen No No No
Csatlakozás másik SQL Serverhez Igen Igen Igen No No No
Csatlakozás az Azure SQL Database-hez vagy a felügyelt Azure SQL-példányhoz Igen 3 Igen 3 Igen 3 No No No
Csatlakozás az Oracle/Teradata/MongoDB szolgáltatáshoz Igen Igen Igen No No No
Csatlakozás az Azure Blob Storage-hoz Igen Igen Igen Igen Igen No
Csatlakozás az ADLS Gen2-hez No Igen Igen Igen Igen No
Csatlakozás S3-kompatibilis tárolóhoz No Igen Igen No No No
Csatlakozás a OneLake (Fabric)-hez No No No No No Igen
Leküldéses számítás Igen Igen Igen No No No
Felügyelt identitás hitelesítése No No Igen 4 Igen Igen No

Az 1 SQL Server 2019 (15.x) támogatja OPENROWSET(BULK...) a helyi és a hálózati fájl elérési útját. Az SQL Server 2022 (16.x) és újabb verzióiban OPENROWSET(BULK...) a felhőbeli tárolóból való olvasást támogatja FORMAT = 'PARQUET'-val, FORMAT = DELTA-vel és FORMAT = 'CSV'-vel.

SQL Server 2019 (15.x) CSV-támogatása a Hadoop-ot igényelte. Az SQL Server 2022 (16.x) és újabb verzióiban a CSV natív módon támogatott a Hadoop nélkül.

3 Az SQL Server-összekötőt használja (sqlserver://). Az adatbázis hatókörébe tartozó hitelesítő adatok az Azure SQL-végpontra irányulnak, ugyanazokkal a lépésekkel, mint egy másik SQL Serverhez való csatlakozás.

4 A felügyelt identitás hitelesítése támogatott az Azure Blob Storage-hoz (ABS) és az ADLS Gen2-hez való csatlakozáshoz. Az Azure Arc-kompatibilis SQL Server vagy az Azure platformon futó SQL Server szükséges a helyszíni SQL Serverhez. Natívan elérhető az Azure SQL Database-ben és az Azure SQL Managed Instance-ben.

Megjegyzés:

Az SQL Server 2025 -től (17.x) kezdődően az adatfájlok (CSV, Parquet és Delta) lekérdezése az Azure Blob Storage, az ADLS Gen2 vagy az S3-kompatibilis tárolón natív motorképesség, és már nem igényel PolyBase-szolgáltatások telepítését vagy futtatását. Az RDBMS-összekötőknek (SQL Server, Oracle, Teradata, MongoDB, ODBC) továbbra is polyBase-szolgáltatásokat kell telepíteniük és futtatniuk. Az SQL Server 2025 (17.x) linuxos támogatást is biztosít ezekhez az összekötőkhöz, amelyek korábban csak Windows rendszeren voltak elérhetők.

Külső adatok lekérdezése

Egy adott forgatókönyv kiválasztása előtt ismerje meg a külső adatok lekérdezésének három módját:

Megközelítés Szemantika Használat: Authentication PolyBase szükséges
OLE DB alkalmi lekérdezések OPENROWSET(provider, connection, query) Gyors egyszeri lekérdezést szeretne állandó objektumok nélkül, vagy Microsoft Entra ID-hitelesítésre van szüksége SQL-hitelesítés, Windows-hitelesítés, Microsoft Entra ID (MSOLEDBSQL) No
Ad hoc lekérdezések kezelése OPENROWSET(BULK ...) A tábla létrehozása előtt gyorsan meg szeretné vizsgálni a fájladatokat, vagy tesztelni szeretné a sémákat SAS-jogkivonat, hozzáférési kulcs, felügyelt identitás, Microsoft Entra-azonosító Igen az Azure SQL Database-hez és a felügyelt Azure SQL-példányhoz

Nem SQL Server példányok esetén
Állandó adatösszekötők CREATE EXTERNAL TABLE a sqlserver://, oracle://, teradata://stb. Ismétlődő hozzáférésre, irányításra, statisztikákra és leküldéses számításokra van szükség a termelési környezetben Csak SQL-hitelesítés Igen

Az SQL Server 2019 (15.x) és az SQL Server 2022 (16.x) felhőbeli fájlhozzáféréshez PolyBase-szolgáltatások szükségesek. Az SQL Server 2025 (17.x) és újabb verziói natív támogatást nyújtanak a CSV, a Parquet és a Delta polyBase nélküli verziójához.

Útmutató döntésekhez

Scenario Ajánlás
Távoli SQL-hez Microsoft Entra ID-hitelesítésre van szükségem, vagy el szeretném kerülni a PolyBase-szolgáltatásokat Használat OPENROWSET(MSOLEDBSQL, ...) (alkalmi, állandó objektumok nélkül)
Állandó táblákra, statisztikákra vagy leküldéses számításokra van szükségem a távoli adatbázisokban Használja a CREATE EXTERNAL TABLE PolyBase-összekötőkkel (sqlserver://, oracle://, teradata://, mongodb://, odbc://). OPENROWSET nem támogatja az összekötőket
Új fájl felfedezése vagy séma tesztelése Használat OPENROWSET(BULK ...) (gyors iteráció, állandó objektumok nélkül)
Fájladatokat ömlesztek egy táblázatba átalakításokkal Használd INSERT ... SELECT a OPENROWSET(BULK ...)
Irányításra vagy megosztott hozzáférésre van szükségem számos felhasználó vagy alkalmazás számára Használja a CREATE EXTERNAL TABLE, hogy az engedélyek és a metaadatok központosítva legyenek.
Sql Database-ben dolgozom a Fabricben Ad hoc OPENROWSET(BULK ...) OneLake-lekérdezésekhez vagy ismételt elérésre alkalmas külső táblákhoz; külső tárolókhoz a OneLake-parancsikonok használata

Válassza ki a forgatókönyvet

Most, hogy megismerte a három módszert, használja az alábbi útmutatók egyikét az adott használati eset implementálásához.

Lekérdezésfájlok (Parquet, CSV vagy Delta)

Ha az adatok Parquet-, CSV- vagy Delta-fájlokban találhatók az Azure Blob Storage-on, az ADLS Gen2-ben, az S3-kompatibilis tárolóban vagy a OneLake-ben, kövesse az alábbi útmutatók egyikét:

Scenario Ajánlott útmutató Platformok
Gyors ad hoc lekérdezés Parquet- vagy CSV-fájlon Használja a OPENROWSET. Nincs szükség külső táblára SQL Server 2022 (16.x) és újabb verziók, Azure SQL Database, Felügyelt Azure SQL-példány, SQL Database a Fabricben
Ismétlődő lekérdezések parquet-fájlokon állandó sémával Külső tábla létrehozása Parqueten keresztül SQL Server 2022 (16.x) és későbbi verziók, Azure SQL Database, Felügyelt Azure SQL-példány, SQL-adatbázis Fabricben
CSV-fájlok lekérdezése külső táblával Külső táblázat létrehozása fájlformátummal tagolt szöveghez SQL Server 2019 (15.x) és újabb verziók, Azure SQL Database, Azure SQL Managed Instance, SQL Database a Fabric környezetben
Delta Lake-táblák lekérdezése Külső táblát hozzon létre FILE_FORMAT = DeltaLakeFileFormat SQL Server 2022 (16.x) és újabb verziók
Lekérdezési eredmények exportálása Parquet- vagy CSV-fájlokba (CETAS) Használja a CREATE EXTERNAL TABLE AS SELECT-t SQL Server 2022 (16.x) és újabb verziók, Felügyelt Azure SQL-példány

Az alábbi lépésenkénti oktatóanyagok egyikét is követheti:

Oktatóanyag Leírás
A PolyBase használatának első lépései az SQL Server 2022-ben Lefedi a Parquet OPENROWSET és CSV-adatokat, külső táblákat és mappanavigációt.
Parquet-fájl virtualizálása S3-kompatibilis objektumtárolóban PolyBase használatával Oktatóanyag az SQL Server 2022 (16.x) és újabb verzióihoz.
CSV-fájl virtualizálása a PolyBase használatával Oktatóanyag az SQL Server 2022 (16.x) és újabb verzióihoz.
Delta-tábla virtualizálása a PolyBase használatával Oktatóanyag az SQL Server 2022 (16.x) és újabb verzióihoz.
Adatvirtualizálás az Azure SQL Database-lel (előzetes verzió) Azure SQL Database-útmutató Parquethez és CSV-hez.
Adatvirtualizálás felügyelt Azure SQL-példánysal Felügyelt Azure SQL-példányok útmutatója a Parquethez, a CSV-hez és a CETAS-hez.
Adatvirtualizáció SQL adatbázisban a Fabric-ben SQL-adatbázis a Fabric útmutatóban OneLake fájlokhoz.

Csatlakozás másik SQL Server-példányhoz, Azure SQL Database-hez vagy felügyelt SQL-példányhoz

Az SQL Server 2019 (15.x) és újabb verzióiban a PolyBase a csatolt kiszolgálók használata nélkül is lekérdezhet táblákat egy másik SQL Server-példányban, az Azure SQL Database-ben vagy az Azure SQL Managed Instance-ben.

Fontos

Az sqlserver:// összekötő nem támogatott az SQL Database-ben a Fabricben. A PolyBase RDBMS-összekötők SQL-hitelesítést használnak a CREATE DATABASE SCOPED CREDENTIAL segítségével, és nem támogatják Microsoft Entra-azonosítót, felügyelt identitást vagy szolgáltatás elsődleges hitelesítést. Mivel a Fabric sql-adatbázisához Microsoft Entra-hitelesítés szükséges, a PolyBase használatával nem csatlakozhat hozzá.

Lépés Teendők
1. A PolyBase telepítése A PolyBase telepítése Windows rendszeren vagy a PolyBase telepítése Linuxon
2. Hitelesítő adatok létrehozása CREATE DATABASE SCOPED CREDENTIAL célzott bejelentkezéssel
3. Külső adatforrás létrehozása CREATE EXTERNAL DATA SOURCE ... WITH (LOCATION = 'sqlserver://<server>')
4. Külső tábla létrehozása CREATE EXTERNAL TABLE ... WITH (LOCATION = '<db>.<schema>.<table>')
5. Lekérdezés SELECT * FROM <external_table>

Jótanács

Az SQL Server-összekötő (sqlserver://) az Azure SQL Database és az Azure SQL Managed Instance esetében is működik. Használja ugyanazokat a lépéseket, és állítsa be LOCATION az Azure SQL-végpontot (például sqlserver://myserver.database.windows.net).

Részletes útmutató: A PolyBase konfigurálása külső adatokhoz való hozzáféréshez az SQL Serveren.

Csatlakozás Oracle-hez, Teradata-hoz vagy MongoDB-hez

Az SQL Server 2019 (15.x) és újabb verziói Az Oracle, a Teradata, a MongoDB és a Cosmos DB lekérdezése PolyBase ODBC-összekötőken keresztül történik.

Adatforrás Guide Követelmények
Oracle A PolyBase konfigurálása külső adatokhoz való hozzáféréshez az Oracle-ben SQL Server 2019 (15.x) és újabb verziók, Oracle-ügyfélillesztők
Teradata A PolyBase konfigurálása külső adatok eléréséhez a Teradata-ban SQL Server 2019 (15.x) és újabb verziók, Teradata ODBC-illesztő
MongoDB / Cosmos DB A PolyBase konfigurálása külső adatok eléréséhez a MongoDB-ben SQL Server 2019 (15.x) és újabb verziók, MongoDB ODBC-illesztő
Bármely ODBC-forrás A PolyBase konfigurálása külső adatok ODBC általános típusokkal való eléréséhez SQL Server 2019 (15.x) és újabb verziók (Windows)

(Linux az SQL Server 2025-től kezdve (17.x))

Csatlakozás az Azure Blob Storage-hoz vagy az ADLS Gen2-hez

SQL platform Hitelesítési lehetőségek Guide
SQL Server 2022 (16.x) és újabb verziók SAS-jogkivonat, hozzáférési kulcs, felügyelt identitás (az SQL Server 2025-től kezdve (17.x)) A PolyBase konfigurálása külső adatok elérésére az Azure Blob Storage-ban
SQL Server 2019 (15.x) Hozzáférési kulcs (Hadoop-összekötőn keresztül) A PolyBase konfigurálása külső adatok elérésére az Azure Blob Storage-ban
Azure SQL Database SAS-jogkivonat, felügyelt identitás, Microsoft Entra-átengedés Adatvirtualizálás az Azure SQL Database-lel (előzetes verzió)
Azure SQL Managed Instance SAS-jogkivonat, felügyelt identitás Adatvirtualizálás felügyelt Azure SQL-példánysal

Az SQL Server 2022-ben (16.x) az URI-előtagok módosultak. Az SQL Server 2019 (15.x) vagy korábbi verzióiból való migráláskor:

  • Azure Blob Storage: Váltás a következőre wasb[s]:// : abs://
  • ADLS Gen2: Váltás a következőre abfs[s]:// : adls://

További információ: A PolyBase konfigurálása külső adatokhoz való hozzáféréshez az Azure Blob Storage-ban.

Csatlakozás S3-kompatibilis objektumtárolóhoz

Az SQL Server 2022 (16.x) és újabb verziói támogatják az S3-kompatibilis tárolókat, például az Amazon S3-at, a MinIO-t és a Ceph-t.

További információ: A PolyBase konfigurálása külső adatok S3-kompatibilis objektumtárolóban való eléréséhez.

Adatok exportálása a CREATE EXTERNAL TABLE AS SELECT (CETAS) használatával

A CETAS külső fájlokba (Parquet vagy CSV) exportálja a lekérdezési eredményeket az Azure Blob Storage, az ADLS Gen2 vagy az S3-kompatibilis tárolóban.

SQL platform Támogatott Exportformátumok Jegyzetek
SQL Server 2022 (16.x) és újabb verziók Igen Parquet, CSV Kiszolgálókonfigurációt igényel: a polybase exportálásának engedélyezése
Azure SQL Managed Instance Igen Parquet, CSV Alapértelmezés szerint letiltva
Azure SQL Database No Nincs Nem elérhető
SQL-adatbázis a Fabricben No Nincs Nem elérhető

A Transact-SQL hivatkozásért lásd a CREATE EXTERNAL TABLE AS SELECT (CETAS) című témakört.

Gyors üzembe helyezési példák

1. példa: Alkalmi lekérdezés parquet-fájlon (OPENROWSET)

Nincs szükség külső táblára. Az SQL Server 2022 (16.x) és újabb verzióin, az Azure SQL Database-en, az Azure SQL Managed Instance-en és az SQL Database-en működik a Fabricben.

SELECT TOP 10 *
FROM OPENROWSET (
    BULK 'abs://mycontainer@mystorageaccount.blob.core.windows.net/data/sales/*.parquet',
    FORMAT = 'PARQUET'
) AS [result];

2. példa: Külső tábla CSV-n keresztül az Azure Blob Storage-ban

Ez a példa minden Olyan SQL-platformon működik, amely támogatja a PolyBase-t.

  • 1. lépés: Adatbázis-főkulcs (DMK) létrehozása. Erre a lépésre azért van szükség, mert a hitelesítő adatok egy SAS-jogkivonat titkot tárolnak. Ezt a lépést azonban akkor teheti meg, ha felügyelt identitást vagy Microsoft Entra-hitelesítést használ.

    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<strong_password>';
    
  • 2. lépés: Hitelesítő adatok létrehozása SAS-jogkivonattal. Kihagyja a bevezetőt ?.

    CREATE DATABASE SCOPED CREDENTIAL MyStorageCred
    WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
         SECRET = '<your_SAS_token>'; -- omit the leading '?'
    
  • 3. lépés: Külső adatforrás létrehozása.

    CREATE EXTERNAL DATA SOURCE MyAzureStorage
    WITH (
        LOCATION = 'abs://mycontainer@mystorageaccount.blob.core.windows.net',
        CREDENTIAL = MyStorageCred
    );
    
  • 4. lépés: Fájlformátum létrehozása a CSV-hez.

    CREATE EXTERNAL FILE FORMAT CsvFormat
    WITH (
        FORMAT_TYPE = DELIMITEDTEXT,
        FORMAT_OPTIONS (
            FIELD_TERMINATOR = ',',
            STRING_DELIMITER = '"',
            FIRST_ROW = 2
        )
    );
    
  • 5. lépés: A külső tábla létrehozása.

    CREATE EXTERNAL TABLE dbo.SalesExternal
    (
        OrderId INT,
        OrderDate DATE,
        Amount DECIMAL (18, 2),
        Customer NVARCHAR (100)
    )
    WITH (
        DATA_SOURCE = MyAzureStorage,
        LOCATION = '/data/sales/',
        FILE_FORMAT = CsvFormat
    );
    
  • 6. lépés: A külső tábla lekérdezése.

    SELECT *
    FROM dbo.SalesExternal
    WHERE OrderDate >= '2025-01-01';
    

3. példa: Tábla lekérdezése egy másik SQL Serveren

Ez a példa az SQL Server 2019 (15.x) és újabb verzióin működik.

  • 1. lépés: Adatbázis főkulcsának létrehozása (ez azért szükséges, mert a hitelesítő adatok egy jelszót tárolnak).

    CREATE MASTER KEY ENCRYPTION
    BY PASSWORD = '<strong_password>';
    
  • 2. lépés: Hitelesítő adatok létrehozása a távoli SQL Server-példányhoz.

    CREATE DATABASE SCOPED CREDENTIAL RemoteSqlCred
    WITH IDENTITY = 'remote_user',
         SECRET = '<password>';
    
  • 3. lépés: A külső adatforrás létrehozása.

    CREATE EXTERNAL DATA SOURCE RemoteSqlServer
    WITH (
        LOCATION = 'sqlserver://remote-server.contoso.com',
        PUSHDOWN = ON,
        CREDENTIAL = RemoteSqlCred
    );
    
  • 4. lépés: A külső tábla létrehozása (háromrészes név a következőben LOCATION: ).

    CREATE EXTERNAL TABLE dbo.RemoteCustomers
    (
        CustomerId INT,
        CustomerName NVARCHAR (200)
            COLLATE SQL_Latin1_General_CP1_CI_AS
    )
    WITH (
        DATA_SOURCE = RemoteSqlServer,
        LOCATION = 'SalesDB.dbo.Customers'
    );
    
  • 5. lépés: Lekérdezés kiszolgálók között.

    SELECT c.CustomerName,
           s.Amount
    FROM dbo.RemoteCustomers AS c
         INNER JOIN dbo.LocalSales AS s
             ON c.CustomerId = s.CustomerId;
    

4. példa: Eredmények exportálása Parquetbe a CETAS használatával

Az SQL Server 2022 (16.x) és újabb verzióin, a felügyelt Azure SQL-példányon működik.

  • 1. lépés: CETAS engedélyezése (csak SQL Serveren).

    EXECUTE sp_configure 'allow polybase export', 1;
    RECONFIGURE;
    
  • 2. lépés: Hitelesítő adatok és adatforrás létrehozása (a korábbi példákból származó újrafelhasználás).

  • 3. lépés: Fájlformátum létrehozása a Parquet-exportáláshoz.

    CREATE EXTERNAL FILE FORMAT ParquetFormat
    WITH (
        FORMAT_TYPE = PARQUET
    );
    
  • 4. lépés: Lekérdezési eredmények exportálása.

    CREATE EXTERNAL TABLE dbo.Sales2025Export
    WITH (
        DATA_SOURCE = MyAzureStorage,
        LOCATION = '/exports/sales_2025.parquet',
        FILE_FORMAT = ParquetFormat
    ) AS
    SELECT *
    FROM Sales.Orders
    WHERE OrderDate >= '2025-01-01';
    

A PolyBase T-SQL építőelemei

A forgatókönyvek implementálása előtt ismerje meg a PolyBase által használt alapvető T-SQL-objektumokat, és hogy azok hogyan illeszkednek egymáshoz:

A PolyBase Transact-SQL objektumokat és azok kapcsolatait bemutató diagram.

A PolyBase T-SQL-objektumokat és azok kapcsolatait bemutató diagram a hitelesítéstől (adatbázis főkulcsa, hitelesítő adatai) az adatforrásokon és fájlformátumokon át a lekérdezési módszerekig (Külső táblázat, OPENROWSET, BULK INSERT, CETAS).

Ezekről a T-SQL-utasításokról a következő témakörben olvashat bővebben:

Az összes objektum teljes Transact-SQL hivatkozását a PolyBase Transact-SQL hivatkozásában talál.

Fontos

Ellenőrizze a külső fájlformátum adattípus-társítását. Amikor külső fájlformátumot hoz létre, vagy fájlokat kérdez le a használatával OPENROWSET, a PolyBase automatikusan leképezi a forrásadattípusokat (Parquet, CSV, Delta, Oracle, Teradata, MongoDB) az SQL Server-adattípusokra. Az eltérő típusok csendes csonkolást, pontosságvesztést vagy lekérdezési hibákat okozhatnak. Egy Parquet DECIMAL(38,18) például a következőre képez le: DECIMAL(18,0). Tekintse át a leképezési táblákat, mielőtt külső táblaoszlopokat vagy egy WITH feltételt határoz meg. A teljes referenciaért tekintse meg a PolyBase típusleképezését.

Mikor van szükség a CREATE MASTER KEY-ra?

Az adatbázis-mesterkulcsot (DMK) a CREATE MASTER KEY szintaxissal hozzák létre. A DMK titkosítja az adatbázis hatókörébe tartozó hitelesítő adatokban tárolt titkos kulcsokat. Erre csak akkor van szükség, ha a hitelesítő adat titkos értéket tartalmaz, vagyis amikor jelszót, jogkivonatot vagy hozzáférési kulcsot tárol.

  • DMK szükséges (a hitelesítő adatok titkos kulcsokat tárolnak):

    Hitelesítési típus IDENTITY érték Titkos DMK
    SAS-jogkivonat 'SHARED ACCESS SIGNATURE' Igen Szükséges
    S3 hozzáférési kulcs 'S3 ACCESS KEY' Igen Szükséges
    SQL-bejelentkezés / alapszintű hitelesítés '<username>' Igen Szükséges
    Tárfiók hozzáférési kulcsa '<storage_account_name>' Igen Szükséges
  • A DMK nem szükséges (nincs titkos kulcs tárolva):

    Hitelesítési típus IDENTITY érték Titkos DMK
    Felügyelt identitás 'Managed Identity' No Nem kötelező
    Microsoft Entra ID 'User Identity' vagy 'Managed Identity' No Nem kötelező

Jótanács

Ha nincs titok a CREATE DATABASE SCOPED CREDENTIAL nyilatkozatában, nincs szüksége DMK-ra. A felügyelt identitás és a Microsoft Entra ID-hitelesítés megbízhatóságot delegál a platformra. Az adatbázis nem tárol jelszavakat vagy jogkivonatokat.

Példák:

Ebben a példában a DMK-ra van szükség (a hitelesítő adatok SAS-jogkivonatot tárolnak).

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<strong_password>';

CREATE DATABASE SCOPED CREDENTIAL SasCred
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
     SECRET = '<your_SAS_token>';

Ebben a példában a lekérdezésben nincs szükség a DMK-ra (felügyelt identitás, titkos kulcs nélkül).

CREATE DATABASE SCOPED CREDENTIAL ManagedIdentityCred
WITH IDENTITY = 'Managed Identity';

Ebben a példában a DMK-ra nincs szükség (Microsoft Entra átengedése, nincs titkos kód).

CREATE DATABASE SCOPED CREDENTIAL EntraIdCred
WITH IDENTITY = 'User Identity';

Távoli adathozzáférés OPENROWSET és külső táblák használatával

Az SQL Server három különböző módszert kínál a távoli adatok lekérdezésére. A szintaxis, a hitelesítés és az architektúra különbségeinek megértése esetén kiválaszthatja a megfelelő megközelítést.

Megközelítés Szemantika Csatlakozik ehhez Authentication PolyBase-szolgáltatások Platformok
OLE DB-lekérdezések OPENROWSET(provider, connection, query) Bármely OLE DB-forrás MSOLEDBSQL-en, SQLOLEDB-en vagy más szolgáltatókon keresztül SQL-hitelesítés, Windows-hitelesítés, Microsoft Entra ID (MSOLEDBSQL) No SQL Server (minden támogatott verzió)
Fájl-lekérdezések OPENROWSET(BULK ...) Fájlok helyi lemezen, hálózaton vagy felhőben (Azure Blob, ADLS, S3, OneLake) SAS-jogkivonat, hozzáférési kulcs, felügyelt identitás, Microsoft Entra-azonosító Igen a felhőhöz*; Nem helyi SQL Server 2005; SQL Server 2022 (16.x) és újabb verziók (felhő); Azure SQL
PolyBase-összekötők CREATE EXTERNAL TABLE a CREATE EXTERNAL DATA SOURCE használatával sqlserver://, oracle://, teradata://, mongodb://, odbc:// Távoli SQL Server, Oracle, Teradata, MongoDB, ODBC-források Csak SQL-hitelesítés Igen SQL Server 2019 (15.x) és újabb verziók (Windows); SQL Server 2025 (17.x) és újabb verziók (Linux)

Az SQL Server 2019 (15.x) és az SQL Server 2022 (16.x) felhőbeli fájlhozzáféréshez PolyBase-szolgáltatások szükségesek. Az SQL Server 2025 (17.x) és újabb verziói natív felhőalapú fájltámogatással rendelkeznek, és már nincs szükség PolyBase-ra a CSV, a Parquet vagy a Delta használatához.

Mikor érdemes használni az egyes megközelítéseket?

Az OLE DB OPENROWSET használata a következőhöz:

  • Gyors, egyszeri alkalmi lekérdezések állandó objektumok létrehozása nélkül
  • Microsoft Entra-azonosító vagy felügyelt identitás hitelesítése (MSOLEDBSQL-en keresztül)
  • A PolyBase szolgáltatásfüggőségeinek elkerülése
  • Csatlakozás bármely adatforráshoz egy OLE DB-szolgáltatóval

Az OPENROWSET(BULK) fájl használata a következőhöz:

  • Alkalmi fájlfeltárás és sémafelderítés
  • Gyors átalakítások és előnézetek a tábladefiníció véglegesítése előtt
  • Rugalmas oszlopátalakítások beágyazottan (öntés, szűrés, számított oszlopok)
  • Olyan adatok, amelyek nem változnak gyakran, és nem igényelnek állandó metaadatokat

PolyBase-összekötők használata a CREATE EXTERNAL TABLE használatával a következő célokra:

  • Több felhasználó vagy alkalmazás által elért állandó, újrafelhasználható tábladefiníciók
  • Termelési számítási feladatok, amelyek statisztikákat és lekérdezésterv-optimalizálást igényelnek
  • Leküldési számítások távoli forrásokhoz (leküldési szűrők Oracle-re, SQL Szerverre stb.)
  • Megosztott irányítás és biztonság (létrehozás után a felhasználóknak csak engedélyre van szükségük SELECT )
  • Ha sql-hitelesítés érhető el a távoli forrás számára

OPENROWSET (OLE DB) – alkalmi távoli lekérdezések (nincs szükség PolyBase-szolgáltatásokra)

Az OLE DB-űrlap OPENROWSET egy távoli adatforráshoz csatlakozik egy OLE DB-szolgáltatón keresztül, végrehajt egy átmenő lekérdezést, és sorhalmazként adja vissza az eredményeket. Egy összekapcsolt kiszolgáló egyszeri, alkalmi alternatívája. Nem jönnek létre állandó metaadatok. Ez a szintaxis nem igényel PolyBase-szolgáltatásokat, és nem támogatja a felhőfájlokat és a külső adatforrásokat.

Ez a példalekérdezés egy távoli SQL Serverhez csatlakozik OLE DB-n keresztül (nem PolyBase).

SELECT *
FROM OPENROWSET (
    'MSOLEDBSQL',
    'Server=remote-server;Database=AdventureWorks;Trusted_Connection=yes;',
    'SELECT TOP 10 * FROM AdventureWorks.Sales.SalesOrderHeader'
);

OPENROWSET(BULK) – fájlalapú lekérdezések (PolyBase)

A BULK formája OPENROWSET közvetlenül olvassa az adatokat fájlokból. Az SQL Server 2019 (15.x) és korábbi verziói helyi vagy UNC fájlelérési utakról olvas, és formátumfájlt igényel. Az SQL Server 2022 (16.x) és újabb verzióiban a felhőbeli tárolóból olvashat a paraméterek és DATA_SOURCE a FORMAT paraméterek használatával. Ez a megközelítés az adatvirtualizáláshoz használt PolyBase-integrált verzió.

A PolyBase és az adatvirtualizálás kontextusában, amikor az útmutató erre hivatkozik OPENROWSET , a OPENROWSET(BULK ...) külső fájlok lekérdezésére szolgáló záradékkal ellátott FORMAT szintaxist jelenti.

Példák:

Ez a példa lekérdezés egy Parquet-fájlt olvas be az Azure Blob Storage-ból (SQL Server 2022 és újabb verziók).

SELECT TOP 10 *
FROM OPENROWSET (
    BULK 'data/sales/*.parquet',
    DATA_SOURCE = 'MyAzureStorage',
    FORMAT = 'PARQUET'
) AS [result];

Ez a példa lekérdezés beolvassa a beágyazott elérési úttal rendelkező Parquet-fájlokat (Azure SQL Database, Felügyelt Azure SQL-példány).

SELECT TOP 10 *
FROM OPENROWSET (
    BULK 'abs://mycontainer@mystorageaccount.blob.core.windows.net/data/sales/*.parquet',
    FORMAT = 'PARQUET'
) AS [result];

Mikor érdemes az OPENROWSET-et és a külső táblákat használni?

Mind OPENROWSET(BULK ...) a külső táblák lehetővé teszik a külső adatok lekérdezését a T-SQL használatával, de különböző használati esetekhez vannak kialakítva. Az alábbi táblázat összefoglalja a főbb különbségeket, amelyek segítenek eldönteni, hogy melyik megközelítés felel meg a forgatókönyvnek.

Képesség OPENROWSET(BULK ...) Külső tábla
Purpose Alkalmi feltárás és egyszeri lekérdezések Állandó, újrafelhasználható tábladefiníció
Az adatbázisban tárolt metaadatok Nem. A lekérdezés futtatása után semmi sem lesz mentve Igen. A tábladefiníció, az adatforrás és a fájlformátum adatbázis-objektumként van tárolva
Sémadefiníció Automatikusan kikövetkeztetett a fájlból (Parquet) vagy egy záradékkal WITH beágyazottan megadva Explicit módon definiálva az CREATE EXTERNAL TABLE utasításban
Permissions Megköveteli ADMINISTER BULK OPERATIONS vagy ADMINISTER DATABASE BULK OPERATIONS A létrehozás után a táblán lévő szabványos SELECT engedély elegendő
Számított oszlopok Igen. Adjon hozzá kifejezéseket és számított oszlopokat a listában; a SELECT metaadat-függvények csak filename()filepath() itt érhetők el. Nem. Rögzített oszloplista; átalakítások végrehajtása egy nézetben vagy a külső táblát beolvasó lekérdezésben
Statisztika Azure SQL: manuális egyoszlopos statisztikák az sys.sp_create_openrowset_statistics; SQL Server 2022 (16.x) és újabb verziók: statisztikák automatikus létrehozása predikátumokon (nincsenek manuális statisztikák az SQL Serveren). Lásd az OPENROWSET manuális statisztikáit. Teljes CREATE STATISTICS körű támogatás minden platformon, valamint az SQL Server 2022 (16.x) és újabb verzióinak automatikus létrehozása. Lásd: Külső tábla manuális statisztikáinak létrehozása.
Veremalapú Korlátozott támogatás. Előfordulhat, hogy a motor leküldi a szűrőket a fájlvizsgálathoz, de nincs leküldés a távoli RDBMS-forrásokhoz Igen. Támogatja az RDBMS-csatlakozók számítási folyamatának áttolását (SQL Server, Oracle, Teradata, MongoDB)
a legjobb számára Adatfeltárás, sémafelderítés, prototípus-lekérdezések, egyszeri adatbetöltések, rugalmas átalakítások Éles számítási feladatok, ismétlődő lekérdezések, felhasználók közötti megosztott hozzáférés, irányítópultok és jelentéskészítés

Ha rugalmasságra van szüksége, használja az OPENROWSET-et

Segítségével OPENROWSET megvizsgálhat egy fájlt, tesztelhet különböző sémákat, vagy számítási oszlopokat és átalakításokat adhat hozzá állandó objektumok létrehozása nélkül. Kinyerheti például a fájl elérési útját oszlopként, adattípusokat ágyazhat be, vagy egyetlen lekérdezésben szűrhet számítási kifejezésekre.

Ez a példa lekérdezés számított oszlopokat és átalakításokat tartalmaz:

SELECT result.filename() AS [FileName],
       result.filepath(1) AS [Year],
       result.filepath(2) AS [Month],
       CAST (OrderDate AS DATE) AS OrderDate,
       Amount,
       OrderDate
FROM OPENROWSET (
    BULK 'abs://mycontainer@mystorageaccount.blob.core.windows.net/data/sales/*/*/*/*.parquet',
    FORMAT = 'PARQUET'
) AS result
WHERE result.filepath(1) = '2025';

Jótanács

Az filepath() és filename() függvények elérhetők az Azure SQL Database, az Azure SQL Managed Instance, valamint az SQL Server 2022 (16.x) és újabb verzióiban. Lehetővé teszik a fájl elérési útjának egyes részeire való szűrést (partíciók eltávolítását), és a forrásfájl nevét oszlopként teszi elérhetővé, ami külső táblák esetében nem lehetséges közvetlenül.

Külső táblák használata, ha adatmegőrzésre és szabályozásra van szüksége

Külső táblákat akkor használjon, ha több felhasználónak vagy alkalmazásnak újra le kell kérdeznie ugyanazokat a külső adatokat. Egyszer definiálhatja a sémát, az adatforrást és a hitelesítő adatokat, és tárolhatja őket az adatbázisban. A felhasználóknak csak a táblára vonatkozó engedélyre van szükségük SELECT .

A külső táblák a statisztikákat is támogatják, amelyeket a lekérdezésoptimalizáló a jobb végrehajtási tervek létrehozásához használ. Létrehozhat statisztikákat manuálisan, vagy engedélyezheti a motor automatikus létrehozását (SQL Server 2022 (16.x) és újabb verziók).

Ez a példa lekérdezés statisztikákat hoz létre egy külső táblán a jobb lekérdezési tervek érdekében.

CREATE STATISTICS Stats_OrderDate
ON dbo.SalesExternal(OrderDate)
WITH FULLSCAN;

A két megközelítés statisztikáiról további információt a PolyBase teljesítményével kapcsolatos szempontok – Statisztika című témakörben talál.

BULK INSERT vs. OPENROWSET(BULK): Melyiket érdemes használni?

Mind BULK INSERT és OPENROWSET(BULK ...) adatok importálása fájlokból az SQL Serverbe ugyanazt a bulkload motort használja. Ezek azonban eltérnek a szintaxistól, a rugalmasságtól és az eredményektől. Az alábbi táblázat összefoglalja a főbb különbségeket:

Megjegyzés:

BULK INSERT nem áll rendelkezésre a Fabric SQL adatbázisban. Fabric esetén használja OPENROWSET(BULK ...) a OneLake-hez.

Képesség BULK INSERT OPENROWSET(BULK ...)
Alapszintű cél Adatok betöltése közvetlenül egy fájlból egy céltáblába Egy sorhalmazt ad vissza, amelyet egy SELECT vagy INSERT ... SELECT utasításban használ.
Használati minta Önálló utasítás: BULK INSERT <table> FROM '<file>' Egy lekérdezésen belül kell használni: SELECT * FROM OPENROWSET(BULK ...) vagy INSERT INTO <table> SELECT * FROM OPENROWSET(BULK ...)
Céltáblát igényel? Igen. Mindig közvetlenül egy táblába ír Nem. Innen adatokat lehet kinyerni anélkül, hogy bárhova beszúrná őket, vagy beszúrhatja bármelyik táblázatba vagy ideiglenes táblába.
Oszlopátalakítások a betöltés során Korlátozott támogatás. Az adatfolyamok a fájlból a táblába változatlanul kerülnek (a leképezést a formátumfájl vagy az oszlopsorrend szabályozza) Teljes körű támogatás. Kifejezéseket, szűrőket, CASTWHEREJOIN egyéb táblákat és számított oszlopokat vehet fel a környezetbeSELECT
Táblázat tippek A WITH záradék támogatja a BATCHSIZE, CHECK_CONSTRAINTS, FIRE_TRIGGERS, KEEPIDENTITY, KEEPNULLS, TABLOCKstb. Támogatja a táblázatos tippeket a INSERT ... SELECT * FROM OPENROWSET(BULK ...) WITH (TABLOCK, IGNORE_CONSTRAINTS, ...) szintaxison keresztül
Nagyméretű objektum (LOB) egyértékű importálása Nem támogatott Igen. Támogatja SINGLE_BLOB, SINGLE_CLOB, SINGLE_NCLOB a teljes fájl importálását mint egy varbinary(max), varchar(max), vagy nvarchar(max) érték
Fájlok formázása Igen. Támogatott XML és nem XML formátumokkal Igen. Támogatott (XML és nem XML)
Felhőbeli fájlhozzáférés (Azure Blob Storage, ADLS Gen2, S3) Igen. Paraméterrel DATA_SOURCE támogatott (SQL Server 2017 (14.x) és újabb verziók, Azure SQL) Igen. Támogatva a DATA_SOURCE paraméterrel vagy a beágyazott URL-címmel a FORMAT záradék segítségével (SQL Server 2022 (16.x) és újabb verziók, Azure SQL)
Parquet- vagy Delta-fájlok Nem támogatott. Csak CSV/tagolt szöveg Igen. A FORMAT = 'PARQUET' vagy FORMAT = 'DELTA' támogatása (SQL Server 2022 (16.x) és újabb verziók, Azure SQL)
Engedély szükséges ADMINISTER BULK OPERATIONS vagy ADMINISTER DATABASE BULK OPERATIONS, plusz INSERT a céltáblán ADMINISTER BULK OPERATIONS vagy ADMINISTER DATABASE BULK OPERATIONS
Minimális naplózás Igen. Egyszerű vagy tömegesen naplózott helyreállítási modellekben támogatott TABLOCK Igen. Támogatott, ha INSERT ... SELECT és TABLOCK együtt használják

Mikor válassza a TÖMEGES BESZÚRÁS lehetőséget?

Akkor használható BULK INSERT , ha egyszerű fájl–táblázat terheléssel rendelkezik, és nem kell adatokat átalakítania, szűrnie vagy összekapcsolnia az importálás során. Egyszerűbb szintaxist használ a CSV-hez vagy más tagolt fájlokhoz:

Ez a példa lekérdezés egy CSV-fájlt tölt be az Azure Blob Storage-ból közvetlenül egy táblába.

BULK INSERT Sales.Invoices
FROM 'invoices/inv-2025-01.csv'
WITH (
    DATA_SOURCE = 'MyAzureBlobStorage',
    FORMAT = 'CSV',
    FIRSTROW = 2,
    FIELDTERMINATOR = ',',
    ROWTERMINATOR = '\n'
);

Ez a példalekérdezés betölt egy helyi fájlt egy formátumfájllal az oszlopleképezéshez.

BULK INSERT dbo.Products
FROM 'C:\Data\products.csv'
WITH (
    FORMATFILE = 'C:\Data\products.fmt',
    FIRSTROW = 2,
    TABLOCK
);

Mikor válassza az OPENROWSET(BULK) elemet?

Akkor használja OPENROWSET(BULK ...) , ha az alábbi feltételek közül legalább egyre van szüksége:

  • Fájladatok lekérdezése vagy előnézete tábla létrehozása nélkül.
  • Adatok átalakítása, szűrése vagy csatlakoztatása importáláskor.
  • Parquet- vagy Delta-fájlok betöltése (csak OPENROWSET ezeket a formátumokat támogatja).
  • Importáljon egy teljes fájlt egyetlen LOB-értékként (SINGLE_BLOB, SINGLE_CLOB, ). SINGLE_NCLOB

Ez a példa lekérdezés egy CSV-fájlt tekint meg az Azure Blob Storage-ból anélkül, hogy bárhol beszúrja az adatokat.

SELECT TOP 10 *
FROM OPENROWSET (
    BULK 'invoices/inv-2025-01.csv',
    DATA_SOURCE = 'MyAzureBlobStorage',
    FORMAT = 'CSV',
    FIRSTROW = 2,
    FIELDTERMINATOR = ','
) AS src;

Ez a példa lekérdezés transzformációval és szűréssel szúr be adatokat.

INSERT INTO Sales.Invoices (InvoiceDate, Amount, Customer)
SELECT CAST (InvoiceDate AS DATE),
       Amount * 1.1, -- Apply a 10% markup
       UPPER(Customer)
FROM OPENROWSET (
    BULK 'invoices/inv-2025-01.csv',
    DATA_SOURCE = 'MyAzureBlobStorage',
    FORMAT = 'CSV',
    FIRSTROW = 2
) WITH (
    InvoiceDate VARCHAR (10),
    Amount DECIMAL (18, 2),
    Customer VARCHAR (100)
) AS src
WHERE Amount IS NOT NULL;

Ez a példa lekérdezés betölt egy Parquet-fájlt (nem lehetséges BULK INSERT-vel).

INSERT INTO Sales.Invoices
SELECT *
FROM OPENROWSET (
    BULK 'data/invoices/*.parquet',
    DATA_SOURCE = 'MyAzureStorage',
    FORMAT = 'PARQUET') AS src;

Ez a példa lekérdezés egy teljes XML-fájlt importál egyetlen varbinary(max) értékként.

INSERT INTO dbo.XmlDocuments (DocContent)
SELECT BulkColumn
FROM OPENROWSET (
    BULK 'C:\Data\catalog.xml',
    SINGLE_BLOB
) AS x;

Jótanács

Az egyik módszer az, hogy a OPENROWSET(BULK ...) segítségével egy SELECT feltározza és ellenőrzi a fájlokat, majd a végső produkciós terhelésre vált BULK INSERT , ha nincs szükség átalakításokra. Ha Parquet- vagy Delta-támogatásra vagy beágyazott szűrésre van szüksége, maradjon ezzelOPENROWSET.

További információkért tekintse meg a következő kapcsolódó útmutatókat:

Hasznos metaadat-függvények

Ha külső fájlokat vagy külső táblákat OPENROWSET kérdez le, számos beépített függvényt és eljárást használhat a fájl metaadatainak vizsgálatához, sémák felderítéséhez és partícióérzékeny lekérdezések implementálásához.

filepath() és filename()

A filepath() függvények filename() a fájl elérési útjának részeit vagy az eredményhalmaz egyes sorainak fájlnevét adják vissza. Különösen hasznosak a következő esetekben:

  • Partíciók megszüntetése: Szűrjön a mappaszegmensekre (például év/hónap/nap partíciókra), hogy a motor csak a megfelelő fájlokat olvassa be ahelyett, hogy mindent beolvasana.

  • Forrás metaadatainak felfedése: Adja meg a forrásfájl nevét vagy elérési útját oszlopként a lekérdezés eredményei között, ami hasznos lehet a naplózáshoz vagy a hibakereséshez.

Funkció Visszatérítések Example
filename() A forrásfájl fájlneve (a kiterjesztést is beleértve) az egyes sorokhoz sales_2025_01.parquet
filepath(N) Az N mappaszegmens a helyettesítő karaktert követően (*) az elérési útvonalban, ahol N 1-nél kezdődik Az sales/2025/01/*.parquet elérési útnál a filepath(1) visszaadja a 2025-t, a filepath(2) visszaadja a 01-t.

A következőkre vonatkozik: Azure SQL Database, Felügyelt Azure SQL-példány, SQL Server 2022 (16.x) és újabb verziók, SQL Database a Fabricben.

Ez a példalekérdezés filepath() használja partíciók eliminációjára és filename() a forrásfájlok azonosítására. Csak a /2025/ mappa alatti fájlokat olvassa be, és csak az /06/ almappában lévő fájlokat olvassa be.

SELECT result.filename() AS SourceFile,
       result.filepath(1) AS [Year],
       result.filepath(2) AS [Month],
       *
FROM OPENROWSET (
    BULK 'abs://mycontainer@mystorageaccount.blob.core.windows.net/data/sales/*/*/*.parquet',
    FORMAT = 'PARQUET'
) AS result
WHERE result.filepath(1) = '2025' 
      AND result.filepath(2) = '06';

Jótanács

Helyezzen filepath() szűrőket a WHERE záradékba, nem pedig egy albekérdezésbe vagy egy CTE-be. Ha a szűrő szerepel a WHERE záradékban, a motor a partíciók eltávolítását a fájlvizsgálat szintjén hajthatja végre, ami jelentősen csökkenti az I/O-t.

sp_describe_first_result_set – OPENROWSET-oszloptípusok felderítése

Parquet-fájlok használatakor a OPENROWSET automatikusan következteti az oszlopadattípusokat (sémakövetkeztetés). A következtetett típusok a szükségesnél nagyobbak lehetnek. A karakteroszlopok például gyakran varchar(8000) néven vannak kikövetkeztetve, mivel a parquet metaadatai nem tartalmazzák a maximális hosszt. Ez a választás csökkentheti a teljesítményt, és több memóriát használhat fel.

A sp_describe_first_result_set lekérdezés véglegesítése előtt ellenőrizze a kikövetkeztetett sémát. A kikövetkeztetett típusok megjelenítése után adjon meg szűkebb típusokat egy WITH záradékban a teljesítmény javítása érdekében.

  • 1. lépés: Vizsgálja meg a következtetett sémát.

    EXECUTE sp_describe_first_result_set N'
    SELECT *
    FROM OPENROWSET(
        BULK ''abs://mycontainer@mystorageaccount.blob.core.windows.net/data/sales/*.parquet'',
        FORMAT = ''PARQUET''
    ) AS result';
    

    A kimenet az egyes oszlopok nevét, a kikövetkeztetett adattípust, a maximális hosszt, a pontosságot és a skálázást jeleníti meg. Ha olyan varchar(8000) jelenik meg, ahol a varchar(100) elegendő lenne, felülbírálja azt:

  • 2. lépés: Explicit típusokat használjon a jobb teljesítmény érdekében.

    SELECT TOP 100 *
    FROM OPENROWSET (
        BULK 'abs://mycontainer@mystorageaccount.blob.core.windows.net/data/sales/*.parquet',
        FORMAT = 'PARQUET'
    ) WITH (
        OrderId INT,
        OrderDate DATE,
        Amount DECIMAL (18, 2),
        Customer VARCHAR (100) -- much narrower than the inferred varchar(8000)
    ) AS result;
    

A sémakövetkeztetés csak Parquet-fájlokkal működik. CSV-fájlok esetén mindig adjon meg oszlopdefiníciókat egy WITH záradékban (for OPENROWSET) vagy az CREATE EXTERNAL TABLE utasításban. sp_describe_first_result_set Ez egy általános SQL Server- és Azure SQL-eljárás, de lekérdezésekhez OPENROWSET különösen hasznos. További információért lásd a sp_describe_first_result_set dokumentációt.

Teljesítmény, hibaelhárítás és ajánlott eljárások

Az adatvirtualizálás implementálása után az alábbi útmutatók segítségével optimalizálhatja a teljesítményt, diagnosztizálhatja a problémákat, és biztosíthatja az éles üzemkészséget:

Terület Cikk Részletek
PolyBase-teljesítmény Teljesítményre vonatkozó szempontok az SQL Server PolyBase-ben Statisztika, leküldés, párhuzamosság és memóriakezelés
Leküldéses számítás Szerveroldali számítások a PolyBase-ben Annak meghatározása, hogy mely műveletek kerülnek a távoli forrásba tolásra
Hogyan állapíthatja meg, hogy történt-e pushdown Hogyan ismerheti fel, hogy külső nyomás-leadás történt-e Lekérdezési tervek és DMV-k
Hibaelhárítás PolyBase- monitorozása és hibaelhárítása Gyakori hibák és megoldások
Kerberos-kapcsolat PolyBase Kerberos-kapcsolat hibaelhárítása
Gyakori kérdések PolyBase – gyakori kérdések
Hibák és megoldások PolyBase-hibák és lehetséges megoldások