Delen via


Gegevens opnemen in het magazijn

Van toepassing op:✅ Warehouse in Microsoft Fabric

Warehouse in Microsoft Fabric biedt ingebouwde hulpprogramma's voor gegevensopname waarmee gebruikers gegevens op schaal kunnen opnemen in magazijnen met behulp van codevrije of coderijke ervaringen.

Bepalen welk hulpprogramma voor gegevensopname moet worden gebruikt

Als u wilt bepalen welke optie voor gegevensopname u wilt gebruiken, kunt u de volgende criteria gebruiken:

  • Gebruik de instructie COPY (Transact-SQL) voor coderijke gegevensopnamebewerkingen, voor de hoogste gegevensopnamedoorvoer mogelijk of wanneer u gegevensopname moet toevoegen als onderdeel van een Transact-SQL-logica.
    • Om aan de slag te gaan, zie Gegevens opnemen met behulp van de COPY-instructie
    • De opslag ondersteunt ook traditionele BULK INSERT verklaring dat synoniem staat voor COPY INTO met klassieke laadopties.
    • De COPY instructie in Warehouse ondersteunt gegevensbronnen uit Azure-opslagaccounts en OneLake Lakehouse-mappen. OneLake-bronnen zijn momenteel een preview-functie.
  • Gebruik pijplijnen voor codevrije of lage code, robuuste werkstromen voor gegevensopname die herhaaldelijk, volgens een schema worden uitgevoerd of waarvoor grote hoeveelheden gegevens nodig zijn.
    • Zie Gegevens opnemen in uw warehouse met behulp van pijplijnen om aan de slag te gaan.
    • Met behulp van pijplijnen kunt u robuuste werkstromen organiseren voor een volledige ETL-ervaring (Extract, Transform, Load) die activiteiten bevat om de doelomgeving voor te bereiden, aangepaste Transact-SQL-instructies uit te voeren, zoekopdrachten uit te voeren of gegevens van een bron naar een bestemming te kopiëren.
  • Gebruik gegevensstromen voor een codevrije ervaring die aangepaste transformaties toestaat om gegevens te bronen voordat deze worden opgenomen.
    • Zie Gegevens opnemen met behulp van een gegevensstroom om aan de slag te gaan.
    • Deze transformaties omvatten (maar zijn niet beperkt tot) het wijzigen van gegevenstypen, het toevoegen of verwijderen van kolommen of het gebruik van functies om berekende kolommen te produceren.
  • Gebruik T-SQL-opname voor ervaringen met uitgebreide code om nieuwe tabellen te maken of bestaande tabellen bij te werken met brongegevens in dezelfde werkruimte of externe opslag.
    • Zie Gegevens opnemen in uw warehouse met behulp van Transact-SQL om aan de slag te gaan.
    • U kunt Transact-SQL-functies zoals INSERT...SELECT, SELECT INTO, of CREATE TABLE AS SELECT (CTAS) gebruiken om gegevens te lezen uit een tabel die verwijst naar andere magazijnen, lakehouses of gespiegelde databases binnen dezelfde werkruimte, of om gegevens te lezen uit functie OPENROWSET, die verwijst naar bestanden in de externe Azure-opslagaccounts.
    • U kunt ook query's voor meerdere databases schrijven tussen verschillende magazijnen in uw Fabric-werkruimte.

Ondersteunde gegevensindelingen en -bronnen

Gegevensopname voor Warehouse in Microsoft Fabric biedt een groot aantal gegevensindelingen en bronnen die u kunt gebruiken. Elk van de opties die worden beschreven, bevat een eigen lijst met ondersteunde gegevensconnectortypen en gegevensindelingen.

Voor T-SQL-opname moeten tabelgegevensbronnen zich in dezelfde Microsoft Fabric-werkruimte bevinden en moeten bestandsgegevensbronnen zich in Azure Data Lake of Azure Blob Storage bevinden. Query's kunnen worden uitgevoerd met drienamige syntax of de OPENROWSET-functie voor de brongegevens. Tabelgegevensbronnen kunnen verwijzen naar Delta Lake-gegevenssets, terwijl OPENROWSET() kan verwijzen naar Parquet-, CSV- of JSONL-bestanden in Azure Data Lake of Azure Blob Storage.

Stel dat er twee magazijnen zijn met de naam Inventory en Sales in een werkruimte. Een query zoals de volgende maakt een nieuwe tabel in het magazijn Voorraad met de inhoud van een tabel in het voorraadwarehouse, gekoppeld aan een tabel in het verkoopwarehouse en met externe bestanden met klantgegevens:

CREATE TABLE Inventory.dbo.RegionalSalesOrders
AS
SELECT 
    s.SalesOrders,
    i.ProductName,
    c.CustomerName
FROM Sales.dbo.SalesOrders s
JOIN Inventory.dbo.Products i
    ON s.ProductID = i.ProductID
JOIN OPENROWSET( BULK 'abfss://<container>@<storage>.dfs.core.windows.net/<customer-file>.csv' ) AS c
    ON s.CustomerID = c.CustomerID
WHERE s.Region = 'West region';

Note

Het lezen van gegevens met behulp van OPENROWSET kan langzamer zijn dan het uitvoeren van een query op een tabel. Als u van plan bent om herhaaldelijk toegang te krijgen tot dezelfde externe gegevens, kunt u overwegen deze op te nemen in een toegewezen tabel om de prestaties en queryefficiëntie te verbeteren.

De COPY-instructie (Transact-SQL) ondersteunt momenteel de PARQUET- en CSV-bestandsindelingen. Voor gegevensbronnen worden momenteel Azure Data Lake Storage (ADLS) Gen2 en Azure Blob Storage ondersteund.

Pijplijnen en gegevensstromen ondersteunen een groot aantal gegevensbronnen en gegevensindelingen. Zie Pijplijnen en gegevensstromen voor meer informatie.

Beste praktijken

De opdracht COPY in Warehouse in Microsoft Fabric maakt gebruik van een eenvoudige, flexibele en snelle interface voor gegevensopname met hoge doorvoer voor SQL-workloads. In de huidige versie ondersteunen we alleen het laden van gegevens uit externe opslagaccounts.

U kunt ook de T-SQL-taal gebruiken om een nieuwe tabel te maken en deze vervolgens in te voegen en vervolgens rijen met gegevens bij te werken en te verwijderen. Gegevens kunnen worden ingevoegd vanuit elke database in de Microsoft Fabric-werkruimte met behulp van query's voor meerdere databases. Als u gegevens van een Lakehouse naar een magazijn wilt opnemen, kunt u dit doen met een query voor meerdere databases. Voorbeeld:

INSERT INTO MyWarehouseTable
SELECT * FROM MyLakehouse.dbo.MyLakehouseTable;
  • Vermijd het opnemen van gegevens met behulp van singleton-instructies INSERT , omdat dit slechte prestaties veroorzaakt voor query's en updates. Als singleton-instructies INSERT opeenvolgend zijn gebruikt voor gegevensopname, raden we u aan om een nieuwe tabel te maken met behulp van CREATE TABLE AS SELECT (CTAS) of INSERT...SELECT patronen, de oorspronkelijke tabel te verwijderen en vervolgens de tabel opnieuw te maken op basis van de tabel die u hebt gemaakt met behulp van CREATE TABLE AS SELECT (CTAS).
    • Het verwijderen van uw bestaande tabel is van invloed op uw semantische model, inclusief aangepaste metingen of aanpassingen die u mogelijk hebt aangebracht in het semantische model.
  • Bij het werken met externe gegevens op bestanden raden we aan dat bestanden ten minste 4 MB groot zijn.
  • Voor grote gecomprimeerde CSV-bestanden kunt u overwegen om uw bestand op te splitsen in meerdere bestanden.
  • Azure Data Lake Storage (ADLS) Gen2 biedt betere prestaties dan Azure Blob Storage (verouderd). Overweeg waar mogelijk een ADLS Gen2-account te gebruiken.
  • Voor pijplijnen die regelmatig worden uitgevoerd, kunt u overwegen om uw Azure-opslagaccount te isoleren van andere services die tegelijkertijd toegang hebben tot dezelfde bestanden.
  • Met expliciete transacties kunt u meerdere gegevenswijzigingen groeperen, zodat ze alleen zichtbaar zijn bij het lezen van een of meer tabellen wanneer de transactie volledig is doorgevoerd. U kunt de transactie ook terugdraaien als een van de wijzigingen mislukt.
  • Als een SELECT zich binnen een transactie bevindt en voorafging door gegevensinvoegingen, kunnen de automatisch gegenereerde statistieken onnauwkeurig zijn na een terugdraaiactie. Onnauwkeurige statistieken kunnen leiden tot niet-geoptimaliseerde queryplannen en uitvoeringstijden. Als u een transactie terugdraait met SELECTs na een grote INSERT, werkt u statistieken bij voor de kolommen die in uw SELECT worden genoemd.

Note

Ongeacht hoe u gegevens opneemt in magazijnen, worden de Parquet-bestanden die door de gegevensopnametaak worden geproduceerd, geoptimaliseerd met V-Order schrijfoptimalisatie. V-Order optimaliseert parquet-bestanden om razendsnelle leesbewerkingen mogelijk te maken onder de Microsoft Fabric-rekenprogramma's zoals Power BI, SQL, Spark en andere. Magazijnquery's in het algemeen profiteren van snellere leestijden voor query's met deze optimalisatie, waardoor de Parquet-bestanden 100% voldoen aan de opensource-specificatie. Het wordt niet aanbevolen om V-Volgorde uit te schakelen, omdat dit van invloed kan zijn op de leesprestaties. Zie V-Order begrijpen en beheren voor magazijn voor meer informatie over V-Order.