Partager via


Copier, puis transformer des données dans Microsoft Fabric Warehouse à l’aide d’Azure Data Factory ou d’Azure Synapse Analytics

S’APPLIQUE À : Azure Data Factory Azure Synapse Analytics

Conseil

Essayez Data Factory dans Microsoft Fabric, une solution d’analyse tout-en-un pour les entreprises. Microsoft Fabric couvre tous les aspects, du déplacement des données à la science des données, en passant par l’analyse en temps réel, l’aide à la décision et la création de rapports. Découvrez comment démarrer un nouvel essai gratuitement !

Cet article explique comment utiliser l’activité Copy pour copier des données depuis et vers Microsoft Fabric Warehouse. Pour en savoir plus, lisez l’article d’introduction pour Azure Data Factory ou Azure Synapse Analytics.

Fonctionnalités prises en charge

Ce connecteur Microsoft Fabric Warehouse est pris en charge pour les fonctionnalités suivantes :

Fonctionnalités prises en charge IR Point de terminaison privé managé
Activité de copie (source/récepteur) ① ②
Mappage de flux de données (source/récepteur)
Activité de recherche ① ②
Activité GetMetadata ① ②
Activité de script ① ②
Activité de procédure stockée ① ②

① Runtime d’intégration Azure ② Runtime d’intégration auto-hébergé

Bien démarrer

Pour effectuer l’activité Copie avec un pipeline, vous pouvez vous servir de l’un des outils ou kits SDK suivants :

Créez un service lié à Microsoft Fabric Warehouse à l’aide de l’interface utilisateur

Procédez comme suit pour créer un service lié à Microsoft Fabric Warehouse dans l’interface utilisateur du portail Azure.

  1. Accédez à l'onglet Gérer dans votre espace de travail Azure Data Factory ou Synapse, sélectionnez Services liés, puis sélectionnez Nouveau :

  2. Recherchez Warehouse, puis sélectionnez le connecteur.

    Capture d’écran montrant la sélection du connecteur Microsoft Fabric Lakehouse.

  3. Configurez les informations du service, testez la connexion et créez le nouveau service lié.

    Capture d’écran de la configuration du service lié Microsoft Fabric Lakehouse.

Informations de configuration des connecteurs

Les sections suivantes fournissent des détails sur les propriétés permettant de définir les entités Data Factory spécifiques au connecteur Microsoft Fabric Warehouse.

Propriétés du service lié

Le connecteur Microsoft Fabric Warehouse prend en charge les types d’authentification suivants. Consultez les sections correspondantes pour plus d’informations :

Authentification d’un principal du service

Pour l’authentification de principal de service, effectuez les étapes suivantes.

  1. Enregistrez une application auprès de la plateforme Microsoft Identity Microsoft Identity et ajoutez une clé secrète client. Prenez ensuite note de ces valeurs, que vous utiliserez pour définir le service lié :

    • ID de l'application (client), correspondant à l'ID du principal du service lié.
    • Valeur de la clé secrète client, correspondant à la clé principale du service lié.
    • ID client
  2. Accordez au moins le rôle Contributeur au principal du service dans l’espace de travail Microsoft Fabric. Procédez comme suit :

    1. Accédez à votre espace de travail Microsoft Fabric, sélectionnez Gérer l’accès dans la barre supérieure. Sélectionnez ensuite Ajouter des personnes ou des groupes.

      Capture d’écran montrant la sélection Gérer l’accès de l’espace de travail Fabric.

       Capture d’écran montrant le volet Gérer l’accès de l’espace de travail Fabric.

    2. Dans le volet Ajouter des personnes, entrez le nom de votre principal de service et sélectionnez votre principal de service dans la liste déroulante.

    3. Spécifiez le rôle en tant que Contributeur ou version ultérieure (Administrateur, Membre), puis sélectionnez Ajouter.

      Capture d’écran montrant l’ajout du rôle d’espace de travail Fabric.

    4. Votre principal de service s’affiche dans le volet Gérer l’accès.

Ces propriétés sont prises en charge pour le service lié :

Propriété Description Obligatoire
type La propriété type peut être définie sur Warehouse. Oui
endpoint Point de terminaison du serveur Microsoft Fabric Warehouse. Oui
workspaceId L’ID de l’espace de travail Microsoft Fabric. Oui
artifactId ID d’objet Microsoft Fabric Warehouse. Oui
tenant Spécifiez les informations de locataire (nom de domaine ou ID de locataire) dans lesquels se trouve votre application. Récupérez-les en pointant la souris dans le coin supérieur droit du Portail Azure. Oui
servicePrincipalId Spécifiez l’ID client de l’application. Oui
servicePrincipalCredentialType Type d’informations d’identification à utiliser pour l’authentification de principal du service. Les valeurs autorisées sont ServicePrincipalKey et ServicePrincipalCert. Oui
servicePrincipalCredential Informations d’identification du principal du service.
En utilisant ServicePrincipalKey comme type d'informations d'identification, spécifiez la valeur de la clé secrète client de l'application. Marquez ce champ en tant que SecureString afin de le stocker en toute sécurité, ou référencez un secret stocké dans Azure Key Vault.
Lorsque vous utilisez ServicePrincipalCert comme informations d’identification, référencez un certificat dans Azure Key Vault et vérifiez que le type de contenu du certificat est PKCS #12.
Oui
connectVia Le runtime d’intégration à utiliser pour se connecter à la banque de données. Vous pouvez utiliser le runtime d'intégration Azure ou un runtime d’intégration auto-hébergé si votre banque de données se trouve sur un réseau privé. À défaut de spécification, l’Azure Integration Runtime par défaut est utilisé. Non

Exemple : utilisation de l’authentification de la clé du principal de service

Vous pouvez également stocker la clé du principal du service dans Azure Key Vault.

{
    "name": "MicrosoftFabricWarehouseLinkedService",
    "properties": {
        "type": "Warehouse",
        "typeProperties": {
            "endpoint": "<Microsoft Fabric Warehouse server endpoint>",
            "workspaceId": "<Microsoft Fabric workspace ID>",
            "artifactId": "<Microsoft Fabric Warehouse object ID>",
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalCredentialType": "ServicePrincipalKey",
            "servicePrincipalCredential": {
                "type": "SecureString",
                "value": "<service principal key>"
            }   
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Propriétés du jeu de données

Pour obtenir la liste complète des sections et propriétés disponibles pour la définition de jeux de données, consultez l’article Jeux de données.

Les propriétés suivantes sont prises en charge pour le jeu de données Microsoft Fabric Warehouse :

Propriété Description Obligatoire
type La propriété type du jeu de données doit être définie sur WarehouseTable. Oui
schéma Nom du schéma. Non pour Source, Oui pour Récepteur
table Nom de la table/vue. Non pour Source, Oui pour Récepteur

Exemple de propriétés du jeu de données

{
    "name": "FabricWarehouseTableDataset",
    "properties": {
        "type": "WarehouseTable",
        "linkedServiceName": {
            "referenceName": "<Microsoft Fabric Warehouse linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, retrievable during authoring >
        ],
        "typeProperties": {
            "schema": "<schema_name>",
            "table": "<table_name>"
        }
    }
}

Propriétés de l’activité de copie

Pour obtenir la liste complète des sections et des propriétés disponibles pour la définition des activités, consultez les articles Configurations des activités de copie et Pipelines et activités. Cette section fournit la liste des propriétés prises en charge par la source et le récepteur Microsoft Fabric Warehouse.

Microsoft Fabric Warehouse comme source

Conseil

Pour savoir comment charger efficacement des données depuis Microsoft Fabric Warehouse à l’aide du partitionnement des données, veuillez consulter la rubrique Copie en parallèle depuis Microsoft Fabric Warehouse.

Pour copier des données depuis Microsoft Fabric Warehouse Table, définissez la propriété type dans la source d’activité Copy sur WarehouseSource. Les propriétés prises en charge dans la section source de l’activité de copie sont les suivantes :

Propriété Description Obligatoire
type La propriété type de la source de l’activité Copy doit être définie sur WarehouseSource. Oui
sqlReaderQuery Utiliser la requête SQL personnalisée pour lire les données. Exemple : select * from MyTable. Non
sqlReaderStoredProcedureName Nom de la procédure stockée qui lit les données de la table source. La dernière instruction SQL doit être une instruction SELECT dans la procédure stockée. Non
storedProcedureParameters Paramètres de la procédure stockée.
Les valeurs autorisées sont des paires de noms ou de valeurs. Les noms et la casse des paramètres doivent correspondre aux noms et à la casse des paramètres de la procédure stockée.
Non
queryTimeout Spécifie le délai d’expiration de l’exécution de la commande de requête. La valeur par défaut est 120 minutes. Non
isolationLevel Spécifie le comportement de verrouillage des transactions pour la source SQL. La valeur autorisée est Instantané. S’il n’est pas spécifié, le niveau d’isolation par défaut de la base de données est utilisé. Pour plus d’informations, consultez system.data.isolationlevel. Non
partitionOptions Spécifie les options de partitionnement des données permettant de charger des données depuis Microsoft Fabric Warehouse.
Les valeurs autorisées sont Aucun (valeur par défaut) et DynamicRange.
Lorsqu’une option de partition est activée (autrement dit, pas None), le degré de parallélisme pour charger simultanément des données depuis un entrepôt Microsoft Fabric Warehouse est contrôlé par le paramètre parallelCopies de l’activité de copie.
Non
partitionSettings Spécifiez le groupe de paramètres pour le partitionnement des données.
S’applique lorsque l’option de partitionnement n’est pas None.
Non
Sous partitionSettings :
partitionColumnName Spécifiez le nom de la colonne source en type entier ou date/DateHeure (int, smallint, bigint, date, datetime2) qu’utilisera le partitionnement par plages de valeurs pour la copie en parallèle. S’il n’est pas spécifié, l’index ou la clé primaire de la table est détecté automatiquement et utilisé comme colonne de partition.
S’applique lorsque l’option de partitionnement est DynamicRange. Si vous utilisez une requête pour récupérer des données sources, utilisez ?DfDynamicRangePartitionCondition dans la clause WHERE. Pour obtenir un exemple, veuillez consulter la section Copie en parallèle depuis Microsoft Fabric Warehouse.
Non
partitionUpperBound Valeur maximale de la colonne de partition pour le fractionnement de la plage de partition. Cette valeur est utilisée pour décider du stride de la partition, et non pour filtrer les lignes de la table. Toutes les lignes de la table ou du résultat de la requête seront partitionnées et copiées. Si la valeur n’est pas spécifiée, l’activité de copie la détecte automatiquement.
S’applique lorsque l’option de partitionnement est DynamicRange. Pour obtenir un exemple, veuillez consulter la section Copie en parallèle depuis Microsoft Fabric Warehouse.
Non
partitionLowerBound Valeur minimale de la colonne de partition pour le fractionnement de la plage de partition. Cette valeur est utilisée pour décider du stride de la partition, et non pour filtrer les lignes de la table. Toutes les lignes de la table ou du résultat de la requête seront partitionnées et copiées. Si la valeur n’est pas spécifiée, l’activité de copie la détecte automatiquement.
S’applique lorsque l’option de partitionnement est DynamicRange. Pour obtenir un exemple, veuillez consulter la section Copie en parallèle depuis Microsoft Fabric Warehouse.
Non

Remarque

Lorsque vous utilisez une procédure stockée dans la source pour récupérer des données, sachez que si votre procédure stockée est conçue pour renvoyer un schéma différent quand une valeur de paramètre différente est entrée, vous risquez de rencontrer une défaillance ou d’obtenir un résultat inattendu lors de l’importation d’un schéma depuis l’IU ou lors de la copie de données dans Microsoft Fabric Warehouse avec création de table automatique.

Exemple : utilisation d’une requête SQL

"activities":[
    {
        "name": "CopyFromMicrosoftFabricWarehouse",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Microsoft Fabric Warehouse input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "WarehouseSource",
                "sqlReaderQuery": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Exemple : utilisation d’une procédure stockée

"activities":[
    {
        "name": "CopyFromMicrosoftFabricWarehouse",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Microsoft Fabric Warehouse input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "WarehouseSource",
                "sqlReaderStoredProcedureName": "CopyTestSrcStoredProcedureWithParameters",
                "storedProcedureParameters": {
                    "stringData": { "value": "str3" },
                    "identifier": { "value": "$$Text.Format('{0:yyyy}', <datetime parameter>)", "type": "Int"}
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Exemple de procédure stockée :

CREATE PROCEDURE CopyTestSrcStoredProcedureWithParameters
(
    @stringData varchar(20),
    @identifier int
)
AS
SET NOCOUNT ON;
BEGIN
    select *
    from dbo.UnitTestSrcTable
    where dbo.UnitTestSrcTable.stringData != stringData
    and dbo.UnitTestSrcTable.identifier != identifier
END
GO

Microsoft Fabric Warehouse comme type de récepteur

Les pipelines Azure Data Factory et Synapse prennent en charge l’instruction Use COPY pour charger des données dans Microsoft Fabric Warehouse.

Pour copier des données vers Microsoft Fabric Warehouse, définissez WarehouseSink comme type de récepteur dans l’activité Copy. Les propriétés suivantes sont prises en charge dans la section sink de l’activité de copie :

Propriété Description Obligatoire
type La propriété type du récepteur de l’activité Copy doit être définie sur WarehouseSink. Oui
allowCopyCommand Indique s’il faut utiliser l’instruction COPY pour charger des données dans Microsoft Fabric Warehouse.

Veuillez consulter la section Utiliser l’instruction COPY pour charger des données dans Microsoft Fabric Warehouse pour connaître les contraintes et les détails.

La valeur autorisée est True.
Oui
copyCommandSettings Groupe de propriétés pouvant être spécifié lorsque la propriété allowCopyCommand est définie sur TRUE. Non
writeBatchTimeout Cette propriété spécifie le délai d’attente avant expiration de l’opération d’insertion, d’upsert ou de procédure stockée.

Les valeurs autorisées sont celles qui expriment un intervalle de temps. Exemple : « 00:30:00 » pour 30 minutes. Si aucune valeur n’est spécifiée, le délai d’expiration est par défaut « 00:30:00 ».
Non
preCopyScript Spécifiez une requête SQL pour que l’activité Copy s’exécute avant l’écriture de données dans Microsoft Fabric Warehouse à chaque exécution. Utilisez cette propriété pour nettoyer les données préchargées. Non
tableOption Spécifie si la table du récepteur doit être créée automatiquement si elle n’existe pas en fonction du schéma source. Les valeurs autorisées sont none (par défaut) et autoCreate. Non
disableMetricsCollection Le service collecte des métriques pour fournir des recommandations et optimiser les performances de copie, introduisant un accès de base de données master supplémentaire. Si ce comportement vous préoccupe, spécifiez true pour le désactiver. Non (la valeur par défaut est false)

Exemple : récepteur Microsoft Fabric Warehouse

"activities":[
    {
        "name": "CopyToMicrosoftFabricWarehouse",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Microsoft Fabric Warehouse output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "WarehouseSink",
                "allowCopyCommand": true,
                "tableOption": "autoCreate",
                "disableMetricsCollection": false
            }
        }
    }
]

Copie parallèle depuis Microsoft Fabric Warehouse

Le connecteur Microsoft Fabric Warehouse dans l’activité de copie propose un partitionnement de données intégré pour copier des données en parallèle. Vous trouverez des options de partitionnement de données dans l’onglet Source de l’activité de copie.

Capture d’écran représentant les options de partition

Lorsque vous activez la copie partitionnée, l’activité de copie exécute des requêtes en parallèle sur votre source Microsoft Fabric Warehouse pour charger des données par partitions. Le degré de parallélisme est contrôlé via le paramètre parallelCopies sur l’activité de copie. Par exemple, si vous définissez parallelCopies sur quatre, le service génère, puis exécute simultanément quatre requêtes selon l’option de partition et les paramètres que vous avez spécifiés, chaque requête récupérant une partie des données de votre entrepôt Microsoft Fabric Warehouse.

Nous vous suggérons d’activer la copie parallèle avec le partitionnement des données, en particulier lorsque vous chargez une grande quantité de données depuis votre Microsoft Fabric Warehouse. Voici quelques suggestions de configurations pour différents scénarios. Lors de la copie de données dans un magasin de données basé sur un fichier, il est recommandé d’écrire les données dans un dossier sous la forme de plusieurs fichiers (spécifiez uniquement le nom du dossier). Les performances seront meilleures qu’avec l’écriture de données dans un seul fichier.

Scénario Paramètres suggérés
Chargement complet d’une table volumineuse, avec une colonne d’entiers ou DateHeure pour le partitionnement des données. Options de partition : Partition dynamique par spécification de plages de valeurs.
Colonne de partition (facultatif) : Spécifiez la colonne utilisée pour partitionner les données. Si la valeur n’est pas spécifiée, la colonne de l’index ou de la clé primaire est utilisée.
Limite supérieure de partition et limite inférieure de partition (facultatif) : Spécifiez si vous souhaitez déterminer le stride de la partition. Cela ne permet pas de filtrer les lignes de la table ; en outre, toutes les lignes de la table sont partitionnées, puis copiées. Si les valeurs ne sont pas spécifiées, l’activité de copie les détecte automatiquement.

Par exemple, si les valeurs de la colonne de partition « ID » sont comprises entre 1 et 100, et que vous définissez la limite inférieure à 20 et la limite supérieure à 80, avec la copie parallèle à 4, le service récupère des données en fonction de 4 partitions, (ID des plages <=20, [21, 50], [51, 80] et >=81, respectivement).
Chargez une grande quantité de données à l’aide d’une requête personnalisée, avec une colonne d’entiers ou de date/DateHeure pour le partitionnement des données. Options de partition : Partition dynamique par spécification de plages de valeurs.
Requête: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>.
Colonne de partition : Spécifiez la colonne utilisée pour partitionner les données.
Limite supérieure de partition et limite inférieure de partition (facultatif) : Spécifiez si vous souhaitez déterminer le stride de la partition. Cela ne permet pas de filtrer les lignes de la table ; en outre, toutes les lignes du résultat de la requête sont partitionnées, puis copiées. Si la valeur n’est pas spécifiée, l’activité de copie la détecte automatiquement.

Par exemple, si les valeurs de la colonne de partition « ID » sont comprises entre 1 et 100, et que vous définissez la limite inférieure à 20 et la limite supérieure à 80, avec la copie parallèle à 4, le service récupère des données en fonction de 4 partitions (ID des plages <=20, [21, 50], [51, 80] et >=81, respectivement).

Voici d’autres exemples de requêtes pour différents scénarios :
1. Interroger l’ensemble de la table :
SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition
2. Interroger une table avec une sélection de colonnes et des filtres de la clause WHERE supplémentaires :
SELECT <column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
3. Effectuer une requête avec des sous-requêtes :
SELECT <column_list> FROM (<your_sub_query>) AS T WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
4. Effectuer une requête avec une partition dans une sous-requête :
SELECT <column_list> FROM (SELECT <your_sub_query_column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition) AS T

Meilleures pratiques pour charger des données avec l’option de partition :

  • Choisissez une colonne distinctive comme colonne de partition (p. ex. : clé primaire ou clé unique) pour éviter l’asymétrie des données.
  • Si vous utilisez Azure Integration Runtime pour copier des données, vous pouvez définir des « unités d’intégration de données (DIU) » plus grandes (>4) pour utiliser davantage de ressources de calcul. Vérifiez les scénarios applicables ici.
  • Le « degré de parallélisme de copie » contrôle le nombre de partitions : un nombre trop élevé nuit parfois aux performances. Il est recommandé de définir ce nombre selon (DIU ou nombre de nœuds d'IR auto-hébergé) * (2 à 4).
  • Notez que Microsoft Fabric Warehouse peut exécuter un maximum de 32 requêtes à un moment donné. La définition d’un « degré de parallélisme de copie » trop important peut entraîner un problème de limitation de Warehouse.

Exemple : requête avec partition dynamique par spécification de plages de valeurs

"source": {
    "type": "WarehouseSource",
    "query": "SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>",
    "partitionOption": "DynamicRange",
    "partitionSettings": {
        "partitionColumnName": "<partition_column_name>",
        "partitionUpperBound": "<upper_value_of_partition_column (optional) to decide the partition stride, not as data filter>",
        "partitionLowerBound": "<lower_value_of_partition_column (optional) to decide the partition stride, not as data filter>"
    }
}

Utiliser l’instruction COPY pour charger des données dans Microsoft Fabric Warehouse

L’utilisation de l’instruction COPY est un moyen simple et flexible de charger des données dans Microsoft Fabric Warehouse avec un débit élevé. Pour plus d’informations, consultez Chargement en masse de données à l’aide de l’instruction Copy

  • Si vos données sources se trouvent dans le Stockage Blob Azure ou Azure Data Lake Storage Gen2 et que le format est compatible avec l’instruction COPY, vous pouvez utiliser l’activité de copie pour appeler directement l’instruction COPY et permettre ainsi à Microsoft Fabric Warehouse d’extraire les données de la source. Pour plus d’informations, consultez Copie directe à l’aide de l’instruction COPY .
  • Si votre magasin de données source et son format ne sont pas pris en charge à l’origine par l’instruction COPY, utilisez plutôt la fonctionnalité Copie intermédiaire avec l’instruction COPY . La fonctionnalité de copie intermédiaire vous offre également un meilleur débit. Cette activité convertit automatiquement les données dans un format compatible avec l’instruction COPY, stocke les données dans le Stockage Blob Azure, puis appelle l’instruction COPY pour charger les données dans Microsoft Fabric Warehouse.

Conseil

Lorsque l’instruction COPY est utilisée avec Azure Integration Runtime, le nombre réel d’unités d’intégration de données est toujours de 2. Le réglage du paramètre DIU n’a pas d’impact sur les performances.

Copie directe à l’aide de l’instruction COPY

L’instruction COPY de Microsoft Fabric Warehouse prend directement en charge Blob Azure, Azure Data Lake Storage Gen1 et Azure Data Lake Storage Gen2. Si vos données sources répondent aux critères décrits dans cette section, utilisez l’instruction COPY pour effectuer une copie directement depuis le magasin de données source vers Microsoft Fabric Warehouse. Sinon, utilisez la méthode Copie intermédiaire à l’aide de l’instruction COPY. Le service vérifie les paramètres, puis fait échouer l’exécution de l’activité de copie si les critères ne sont pas satisfaits.

  • Le format et le service liés à la source ont les types et méthodes d’authentification suivants :

    Type de magasin de données source pris en charge Format pris en charge Type d’authentification source pris en charge
    Blob Azure Texte délimité Authentification avec clé de compte, authentification avec signature d’accès partagé
      Parquet Authentification avec clé de compte, authentification avec signature d’accès partagé
    Azure Data Lake Storage Gen2 Texte délimité
    Parquet
    Authentification avec clé de compte, authentification avec signature d’accès partagé
  • Les paramètres du format sont comme suit :

    • Pour Parquet : compression peut correspondre à no compression, Snappy ou GZip.
    • Pour Texte délimité :
      • rowDelimiter est explicitement défini comme caractère unique ou « \r\n », la valeur par défaut n’est pas prise en charge.
      • nullValue conserve sa valeur par défaut ou est défini sur chaîne vide ("").
      • encodingName conserve sa valeur par défaut ou est défini sur utf-8 ou utf-16.
      • escapeChar doit être identique à quoteChar et n’est pas vide.
      • skipLineCount conserve sa valeur par défaut ou est défini sur 0.
      • compression peut être no compression ou GZip.
  • Si votre source est un dossier, recursive dans l’activité de copie doit être défini sur true, et wildcardFilename doit être * ou *.*.

  • wildcardFolderPath , wildcardFilename (autre que * ou *.*), modifiedDateTimeStart, modifiedDateTimeEnd, prefix, enablePartitionDiscovery et additionalColumns ne sont pas spécifiés.

Les paramètres de l’instruction COPY suivants sont pris en charge sous allowCopyCommand dans l’activité de copie :

Propriété Description Obligatoire
defaultValues Spécifie les valeurs par défaut de chaque colonne cible dans Microsoft Fabric Warehouse. Les valeurs par défaut de la propriété remplacent le jeu de contraintes DEFAULT défini dans l’entrepôt de données, et la colonne d’identité ne peut pas avoir de valeur par défaut. Non
additionalOptions Options supplémentaires qui seront transmises à l’instruction COPY de Microsoft Fabric Warehouse directement dans la clause « With » dans l’instruction COPY. Citez la valeur en fonction des besoins pour l’aligner sur les spécifications de l’instruction COPY. Non
"activities":[
    {
        "name": "CopyFromAzureBlobToMicrosoftFabricWarehouseViaCOPY",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "ParquetDataset",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "MicrosoftFabricWarehouseDataset",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "ParquetSource",
                "storeSettings":{
                    "type": "AzureBlobStorageReadSettings",
                    "recursive": true
                }
            },
            "sink": {
                "type": "WarehouseSink",
                "allowCopyCommand": true,
                "copyCommandSettings": {
                    "defaultValues": [
                        {
                            "columnName": "col_string",
                            "defaultValue": "DefaultStringValue"
                        }
                    ],
                    "additionalOptions": {
                        "MAXERRORS": "10000",
                        "DATEFORMAT": "'ymd'"
                    }
                }
            },
            "enableSkipIncompatibleRow": true
        }
    }
]

Copie intermédiaire à l’aide de l’instruction COPY

Quand vos données sources ne sont pas compatibles en mode natif avec l’instruction COPY, activez la copie des données par le biais d’un Stockage Blob Azure intermédiaire ou d’Azure Data Lake Storage Gen2 (il ne peut pas s’agir du Stockage Premium Azure). Dans ce cas, le service convertit automatiquement les données pour répondre aux exigences de format de données de l’instruction COPY. Ensuite, le système utilise l’instruction COPY pour charger des données dans Microsoft Fabric Warehouse. Enfin, il nettoie vos données temporaires du stockage. Pour plus d’informations sur la copie de données par le biais d’un stockage de préproduction, consultez Copie .

Pour utiliser cette fonctionnalité, créez un service lié Stockage Blob Azure ou un service lié Azure Data Lake Storage Gen2 avec authentification par clé de compte ou identité managée par le système qui désigne le compte de stockage Azure comme stockage temporaire.

Important

Important

Si votre stockage Azure intermédiaire est configuré avec un point de terminaison privé géré et avec le pare-feu de stockage activé, vous devez utiliser l’authentification par identité managée et accorder des autorisations de lecteur de données d’objet blob de stockage à Synapse SQL Server pour qu’il puisse accéder aux fichiers intermédiaires pendant le chargement de l’instruction COPY.

"activities":[
    {
        "name": "CopyFromSQLServerToMicrosoftFabricWarehouseViaCOPYstatement",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "SQLServerDataset",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "MicrosoftFabricWarehouseDataset",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SqlSource",
            },
            "sink": {
                "type": "WarehouseSink",
                "allowCopyCommand": true
            },
            "stagingSettings": {
                "linkedServiceName": {
                    "referenceName": "MyStagingStorage",
                    "type": "LinkedServiceReference"
                }
            }
        }
    }
]

Propriétés du mappage de flux de données

Lors de la transformation des données dans le flux de données de mappage, vous pouvez lire et écrire dans des tables de l’entrepôt Microsoft Fabric. Pour plus d’informations, consultez la transformation de la source et la transformation du récepteur dans le flux de données de mappage.

Microsoft Fabric Warehouse comme source

Les paramètres spécifiques à l’entrepôt Microsoft Fabric sont disponibles sous l’onglet Options sources de la transformation source.

Nom Description Obligatoire Valeurs autorisées Propriété du script de flux de données
Entrée Indiquez si vous pointez votre source sur une table (équivalent à Select * from nomtable) ou entrez une requête SQL personnalisée ou récupérez des données à partir d’une procédure stockée. Requête : Si vous sélectionnez Requête dans le champ Entrée, entrez une requête SQL pour votre source. Ce paramètre remplace toute table que vous avez choisie dans le jeu de données. Les clauses Order By ne sont pas prises en charge ici, mais vous pouvez définir une instruction SELECT FROM complète. Vous pouvez également utiliser des fonctions de table définies par l’utilisateur. select * from udfGetData() est une fonction UDF dans SQL qui retourne une table. Cette requête génère une table source que vous pouvez utiliser dans votre flux de données. L’utilisation de requêtes est également un excellent moyen de réduire les lignes pour les tests ou les recherches.Exemple SQL : Select * from MyTable where customerId > 1000 and customerId < 2000 Oui Table ou requête ou procédure stockée Format : 'table'
Taille du lot entrez la taille de lot que doivent avoir les lectures créées à partir d’un large volume de données. Dans les flux de données, ce paramètre permet de définir la mise en cache en colonnes Spark. Il s’agit d’un champ facultatif qui utilise les valeurs par défaut de Spark s’il est laissé vide. Non Valeurs numériques batchSize : 1234
Niveau d’isolation La valeur par défaut pour les sources SQL dans le flux de données de mappage est Lecture non validée. Vous pouvez définir le niveau d’isolation avec l’une de ces valeurs :• Lecture validée • Lecture non validée • Lecture reproductible • Sérialisable • Aucun (ignorer le niveau d’isolation) Oui • Lecture validée • Lecture non validée • Lecture reproductible • Sérialisable • Aucun (ignorer le niveau d’isolation) isolationLevel

Remarque

La lecture via la préproduction n’est pas prise en charge. La prise en charge de la capture des changements de données pour la source d’entrepôt Microsoft Fabric n’est actuellement pas disponible.

Entrepôt Microsoft Fabric comme récepteur

Les paramètres spécifiques à l’entrepôt Microsoft Fabric sont disponibles sous l’onglet Paramètres de la transformation du récepteur.

Nom Description Obligatoire Valeurs autorisées Propriété du script de flux de données
Mettre à jour la méthode détermine les opérations autorisées sur la destination de votre base de données. Par défaut, seules les insertions sont autorisées. Pour mettre à jour, effectuer un upsert ou supprimer des lignes, une transformation alter-row est requise afin de baliser les lignes relatives à ces actions. Pour les mises à jour, les opérations upsert et les suppressions, une ou plusieurs colonnes clés doivent être définies afin de déterminer la ligne à modifier. Oui True ou False pouvant être inséré pouvant être supprimé pouvant être upserté pouvant être mis à jour
Action table Détermine s’il faut recréer ou supprimer toutes les lignes de la table de destination avant l’écriture.• Aucun : aucune action n’est effectuée dans la table. • Recréer : la table sera supprimée et recréée. Obligatoire si vous créez une table dynamiquement.• Tronquer : toutes les lignes de la table cible seront supprimées. Non Aucun ou recréer ou tronquer recréer : true tronquer : true
Activer le mode de préproduction Le stockage de préproduction est configuré dans Exécuter l’activité Flux de données. Lorsque vous utilisez l’authentification par identité managée pour votre service lié de stockage, découvrez les configurations nécessaires pour Azure Blob et Azure Data Lake Storage Gen2 respectivement.Si votre stockage Azure est configuré avec le point de terminaison de service de réseau virtuel, vous devez utiliser l’authentification par identité managée avec « autoriser le service Microsoft approuvé » activé sur le compte de stockage, reportez-vous à Impact de l’utilisation de points de terminaison de service de réseau virtuel avec Stockage Azure. Non True ou False intermédiaire : true
Taille du lot contrôle le nombre de lignes écrites dans chaque compartiment. Les plus grandes tailles de lot améliorent la compression et l’optimisation de la mémoire, mais risquent de lever des exceptions de type mémoire insuffisante lors de la mise en cache des données. Non Valeurs numériques batchSize : 1234
Utiliser le schéma de récepteur Par défaut, une table temporaire est créée sous le schéma récepteur en tant que table intermédiaire. Vous pouvez également décocher l’option Utiliser le schéma de récepteur et spécifier à la place, dans Sélectionner le schéma de base de données de l'utilisateur, un nom de schéma sous lequel Data Factory crée une table intermédiaire pour charger des données en amont et les nettoyer automatiquement une fois l’opération terminée. Vérifiez que vous disposez d’une autorisation de création de table dans la base de données et modifiez l’autorisation sur le schéma. Non True ou False stagingSchemaName
Pré et post-scripts SQL Entrez des scripts SQL multilignes qui s’exécutent avant (prétraitement) et après (post-traitement) l’écriture de données dans votre base de données de réception. Non Scripts SQL preSQLs :['set IDENTITY_INSERT matable ON'] postSQLs :['set IDENTITY_INSERT matable OFF'],

Gestion des lignes d’erreur

Par défaut, l’exécution d’un flux de données échouera à la première erreur rencontrée. Vous pouvez choisir de Continuer en cas d’erreur, ce qui permet à votre flux de données de se terminer, même si des lignes individuelles comportent des erreurs. Le service offre différentes options qui vous permettent de gérer ces lignes d’erreur.

Valider une transaction : Indiquez si vos données sont écrites dans une seule transaction ou par lots. Une transaction unique offre de meilleures performances et aucune donnée écrite n’est visible des autres utilisateurs tant que la transaction n’est pas terminée. Les transactions par lots présentent de moins bonnes performances, mais peuvent fonctionner pour des jeux de données volumineux.

Données de sortie rejetées : Si cette option est activée, vous pouvez générer les lignes d’erreur dans un fichier CSV dans le stockage Blob Azure ou dans un compte Azure Data Lake Storage Gen2 de votre choix. Cela écrira les lignes d’erreur avec trois colonnes supplémentaires : l’opération SQL comme INSERT ou UPDATE, le code d’erreur de flux de données et le message d’erreur sur la ligne.

Réussite signalée malgré l’erreur : S’il est activé, le flux de données est marqué comme ayant réussi, même si des lignes d’erreur sont détectées.

Remarque

Pour le service lié à l’entrepôt Microsoft Fabric, le type d’authentification pris en charge pour le principal de service est « Clé » ; L’authentification « Certificat » n’est pas prise en charge.

Propriétés de l’activité Lookup

Pour en savoir plus sur les propriétés, consultez Activité Lookup.

Propriétés de l’activité GetMetadata

Pour en savoir plus sur les propriétés, consultez Activité GetMetadata.

Mappage de type de données pour Microsoft Fabric Warehouse

Lorsque vous copiez des données de Microsoft Fabric Warehouse, les mappages suivants sont utilisés entre les types de données Microsoft Fabric Warehouse et les types de données intermédiaires en interne dans le service. Pour découvrir comment l’activité de copie mappe le schéma et le type de données la source au récepteur, consultez Mappage de schéma dans l’activité de copie.

Type de données Microsoft Fabric Warehouse Type de données intermédiaires d’Azure Data Factory
bigint Int64
binary Byte[]
bit Boolean
char String, Char[]
Date DateTime
datetime2 DateTime
Decimal Decimal
FILESTREAM attribute (varbinary(max)) Byte[]
Float Double
int Int32
numeric Decimal
real Unique
SMALLINT Int16
time TimeSpan
uniqueidentifier Guid
varbinary Byte[]
varchar String, Char[]

Étapes suivantes

Consultez les magasins de données pris en charge pour obtenir la liste des sources et magasins de données pris en charge en tant que récepteurs par l’activité de copie.