Partager via


Ingérer des données dans l’entrepôt

S’applique à :✅Entrepôt dans Microsoft Fabric

Warehouse in Microsoft Fabric propose des outils d’ingestion de données intégrés qui permettent aux utilisateurs d’ingérer des données dans des entrepôts à grande échelle à l’aide d’expériences sans code ou riches en code.

Déterminer l’outil d’ingestion de données à utiliser

Pour déterminer l’option d’ingestion de données à utiliser, vous pouvez utiliser les critères suivants :

  • Utilisez l’instruction COPY (Transact-SQL) pour les opérations d’ingestion de données riches en code, pour obtenir le débit d’ingestion de données le plus élevé possible ou lorsque vous devez ajouter une ingestion de données dans le cadre d’une logique Transact-SQL.
    • Pour commencer, consultez Ingestion des données à l’aide de l’instruction COPY
    • L’entrepôt prend également en charge l’instruction traditionnelle BULK INSERT, synonyme de COPY INTO, avec des options de chargement classiques.
    • L’instruction COPY dans Warehouse prend en charge les sources de données à partir de comptes de stockage Azure et de dossiers OneLake lakehouse. Les sources OneLake sont actuellement une fonctionnalité en préversion.
  • Utilisez des pipelines pour des flux de travail d'ingestion de données robustes avec peu ou pas de code, qui s'exécutent de manière répétée, à une fréquence programmée, ou qui impliquent de grands volumes de données.
    • Pour commencer, consultez Ingestion de données dans votre entrepôt à l’aide de pipelines.
    • À l’aide de pipelines, vous pouvez orchestrer des workflows robustes pour une expérience d’extraction, de transformation, de chargement (ETL) complète qui inclut des activités pour préparer l’environnement de destination, exécuter des instructions Transact-SQL personnalisées, effectuer des recherches ou copier des données d’une source vers une destination.
  • Utilisez des flux de données pour une expérience sans code qui permet des transformations personnalisées dans les données sources avant qu’elles ne soit ingérées.
    • Pour commencer, consultez Ingestion de données à l’aide d’un dataflow.
    • Ces transformations incluent (mais ne sont pas limitées à) la modification des types de données, l’ajout ou la suppression de colonnes, ou l’utilisation de fonctions pour produire des colonnes calculées.
  • Utilisez l’ingestion T-SQL pour les expériences riches en code pour créer de nouvelles tables ou mettre à jour des tables existantes avec des données sources dans le même espace de travail ou le même stockage externe.
    • Pour commencer, consultez Ingestion de données dans votre entrepôt à l’aide de Transact-SQL.
    • Vous pouvez utiliser des fonctionnalités Transact-SQL telles que INSERT...SELECT, SELECT INTOou CREATE TABLE AS SELECT (CTAS) pour lire des données à partir d’une table référençant d’autres entrepôts, lakehouses ou bases de données mises en miroir dans le même espace de travail, ou pour lire des données à partir d’une OPENROWSET fonction qui référence des fichiers dans les comptes de stockage Azure externes.
    • Vous pouvez également écrire des requêtes inter-bases de données entre différents entrepôts dans votre espace de travail Fabric.

Formats de données et sources pris en charge

L’ingestion de données pour Warehouse dans Microsoft Fabric offre un grand nombre de formats et de sources de données que vous pouvez utiliser. Chacune des options décrites inclut sa propre liste de types de connecteurs de données et de formats de données pris en charge.

Pour l’ingestion T-SQL, les sources de données de table doivent se trouver dans le même espace de travail Microsoft Fabric et les sources de données de fichier doivent être dans Azure Data Lake ou le stockage Blob Azure. Les requêtes peuvent être effectuées à l’aide d’un nommage en trois parties ou d’une fonction OPENROWSET pour les données sources. Les sources de données de table peuvent référencer des jeux de données Delta Lake, tandis que OPENROWSET() peut référencer des fichiers Parquet, CSV ou JSONL dans Azure Data Lake ou le stockage d'objets Azure Blob.

Par exemple, supposons qu’il y ait deux entrepôts nommés Stock et Sales dans un espace de travail. Une requête telle que la suivante crée une nouvelle table dans l'entrepôt des stocks avec le contenu d'une table dans cet entrepôt, jointe à une table de l'entrepôt des ventes ainsi que des fichiers externes contenant des informations sur les clients.

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

La lecture des données avec OPENROWSET peut être plus lente que l’interrogation de données à partir d’une table. Si vous envisagez d’accéder à plusieurs reprises aux mêmes données externes, envisagez de l’ingérer dans une table dédiée pour améliorer les performances et l’efficacité des requêtes.

L’instruction COPY (Transact-SQL) prend actuellement en charge les formats de fichiers PARQUET et CSV. Pour les sources de données, Azure Data Lake Storage (ADLS) Gen2 et Stockage Blob Azure sont actuellement pris en charge.

Les pipelines et les dataflows prennent en charge un large éventail de sources de données et de formats de données. Pour plus d’informations, consultez Pipelines et dataflows.

Meilleures pratiques

La fonctionnalité de commande COPY dans Warehouse dans Microsoft Fabric utilise une interface simple, flexible et rapide pour l’ingestion de données à haut débit pour les charges de travail SQL. Dans la version actuelle, nous prenons uniquement en charge le chargement de données à partir de comptes de stockage externes.

Vous pouvez également utiliser le langage T-SQL pour créer une table, puis l’insérer, puis mettre à jour et supprimer des lignes de données. Les données peuvent être insérées à partir de n’importe quelle base de données dans l’espace de travail Microsoft Fabric à l’aide de requêtes inter-bases de données. Si vous souhaitez ingérer des données d’un lakehouse vers un entrepôt, vous pouvez le faire avec une requête inter-bases de données. Par exemple:

INSERT INTO MyWarehouseTable
SELECT * FROM MyLakehouse.dbo.MyLakehouseTable;
  • Évitez d’ingérer des données à l’aide d’instructions singleton INSERT , car cela entraîne des performances médiocres sur les requêtes et les mises à jour. Si des instructions singleton INSERT ont été utilisées pour l’ingestion de données consécutivement, nous vous recommandons de créer une table à l’aide CREATE TABLE AS SELECT (CTAS) ou INSERT...SELECT des modèles, de supprimer la table d’origine, puis de créer à nouveau votre table à partir de la table que vous avez créée à l’aide CREATE TABLE AS SELECT (CTAS).
    • La suppression de votre table existante a un impact sur votre modèle sémantique, y compris les mesures personnalisées ou les personnalisations que vous avez peut-être apportées au modèle sémantique.
  • Lorsque vous utilisez des données externes sur des fichiers, nous vous recommandons d’avoir une taille de fichiers d’au moins 4 Mo.
  • Pour les fichiers CSV compressés volumineux, envisagez de fractionner votre fichier en plusieurs fichiers.
  • Azure Data Lake Storage (ADLS) Gen2 offre de meilleures performances que Stockage Blob Azure (hérité). Envisagez d’utiliser un compte ADLS Gen2 aussi souvent que possible.
  • Pour les pipelines qui s’exécutent fréquemment, envisagez d’isoler votre compte de stockage Azure d’autres services qui peuvent accéder aux mêmes fichiers en même temps.
  • Les transactions explicites vous permettent de regrouper plusieurs modifications de données afin qu’elles soient visibles uniquement lors de la lecture d’une ou plusieurs tables lorsque la transaction est entièrement validée. Vous avez également la possibilité de restaurer la transaction si l’une des modifications échoue.
  • Si un élément SELECT se trouve dans une transaction et a été précédé d’insertions de données, les statistiques générées automatiquement peuvent être inexactes après une restauration. Des statistiques inexactes peuvent entraîner des plans de requête et des temps d’exécution non optimisés. Si vous restaurez une transaction avec des SELECT après un insert volumineux, mettez à jour les statistiques pour les colonnes mentionnées dans votre fichier SELECT.

Note

Quelle que soit la manière dont vous ingérez les données dans les entrepôts, les fichiers parquet produits par la tâche d'ingestion de données seront optimisés à l'aide de l'optimisation d'écriture V-Order. V-Order optimise les fichiers Parquet pour permettre des lectures ultra-rapides sous les moteurs de calcul Microsoft Fabric tels que Power BI, SQL, Spark et autres. Les requêtes d'entrepôt bénéficient en général de temps de lecture plus rapides pour les requêtes avec cette optimisation, tout en garantissant que les fichiers parquet sont 100 % conformes à sa spécification open source. Il n’est pas recommandé de désactiver V-Order, car il peut affecter les performances de lecture. Pour plus d’informations sur V-Order, consultez Comprendre et gérer V-Order pour les entrepôts.