Copier des données vers et depuis Azure Databricks Delta Lake à l’aide de Azure Data Factory ou de Azure Synapse Analytics

S'APPLIQUE À : Azure Data Factory Azure Synapse Analytics

Conseil

Data Factory dans Microsoft Fabric est la prochaine génération de Azure Data Factory, avec une architecture plus simple, une IA intégrée et de nouvelles fonctionnalités. Si vous débutez avec l'intégration des données, commencez par Fabric Data Factory. Les charges de travail ADF existantes peuvent être mises à niveau vers Fabric pour accéder à de nouvelles fonctionnalités dans la science des données, l’analytique en temps réel et la création de rapports.

Cet article explique comment utiliser le activité Copy dans Azure Data Factory et Azure Synapse pour copier des données vers et depuis Azure Databricks Delta Lake. Il s’appuie sur l’article activité Copy qui présente une vue d’ensemble générale de copy activity.

Note

Ce connecteur est également disponible dans Data Factory dans Microsoft Fabric. Pour plus d’informations sur la configuration et les fonctionnalités spécifiques à Fabric, consultez la documentation du connecteur Fabric Azure Databricks.

Fonctionnalités prises en charge

Ce connecteur Azure Databricks Delta Lake est pris en charge pour les fonctionnalités suivantes :

Fonctionnalités prises en charge IR
Activité Copy (source/récepteur) (1) (2)
Mappage de flux de données (source/puits)
Activité de recherche (1) (2)

(1) Moteur d'intégration Azure (2) Moteur d'intégration auto-hébergé

En général, le service prend en charge Delta Lake avec les fonctionnalités suivantes pour répondre à vos différents besoins.

  • L’activité de copie prend en charge le connecteur Azure Databricks Delta Lake pour copier des données d’un magasin de données source pris en charge vers une table Azure Databricks Delta Lake, et d’une table Delta Lake vers un magasin de données récepteur pris en charge. Elle tire parti de votre cluster Databricks pour effectuer le déplacement des données. Pour plus d’informations, consultez la section des prérequis.
  • Mapping Data Flow prend en charge le format Delta générique sur stockage Azure en tant que source et récepteur pour lire et écrire des fichiers Delta pour l’ETL sans code, et s’exécute sur des Azure Integration Runtime managés.
  • Les activités Databricks prennent en charge l’orchestration de votre charge de travail ETL centrée sur le code ou de Machine Learning sur Delta Lake.

Prérequis

Pour utiliser ce connecteur Azure Databricks Delta Lake, vous devez configurer un cluster dans Azure Databricks.

  • Pour copier des données vers delta lake, activité Copy appelle Azure Databricks cluster pour lire des données à partir d’un stockage Azure, qui est votre source d’origine ou une zone intermédiaire dans laquelle le service écrit d’abord les données sources via une copie intermédiaire intégrée. En savoir plus sur Delta Lake en tant que récepteur.
  • De même, pour copier des données à partir de delta lake, activité Copy appelle Azure Databricks cluster pour écrire des données dans un stockage Azure, qui est votre récepteur d’origine ou une zone intermédiaire à partir de laquelle le service continue d’écrire des données dans le récepteur final via une copie intermédiaire intégrée. En savoir plus sur Delta Lake en tant que source.

Le cluster Databricks doit avoir accès à un compte Stockage Blob Azure ou Azure Data Lake Storage Gen2, à la fois au conteneur de stockage/système de fichiers utilisé pour la source/le récepteur/le transit, et au conteneur/système de fichiers dans lequel vous voulez écrire les tables Delta Lake.

  • Pour utiliser Azure Data Lake Storage Gen2, vous pouvez configurer un principal service sur le cluster Databricks dans le cadre de la configuration Apache Spark. Suivez la procédure dans Accès direct avec le principal de service.

  • Pour utiliser Azure Stockage Blob, vous pouvez configurer une clé d’accès de compte storage ou SAS sur le cluster Databricks dans le cadre de la configuration Apache Spark. Suivez les étapes décrites dans Access Azure Stockage Blob à l’aide de l’API RDD.

Pendant l’exécution de l’activité Copy, si le cluster que vous avez configuré a été arrêté, le service le redémarre automatiquement. Si vous créez un pipeline à l’aide de l’interface utilisateur de création, pour les opérations telles que l’aperçu des données, vous devez avoir un cluster actif, car le service ne démarre pas le cluster en votre nom.

Spécifier la configuration du cluster

  1. Dans le menu déroulant Mode du cluster, sélectionnez Standard.

  2. Dans le menu déroulant Version du runtime Databricks, sélectionnez une version de runtime Databricks.

  3. Activez Optimisation automatique en ajoutant les propriétés suivantes à votre configuration Spark :

    spark.databricks.delta.optimizeWrite.enabled true
    spark.databricks.delta.autoCompact.enabled true
    
  4. Configurez votre cluster en fonction de vos besoins en matière d’intégration et de mise à l’échelle.

Pour plus d’informations sur la configuration du cluster, consultez Configurer des clusters.

Bien démarrer

Pour effectuer l’activité de copie avec un pipeline, vous pouvez utiliser l’un des outils ou kits sdk suivants :

Créer un service lié à Azure Databricks Delta Lake à l’aide de l’interface utilisateur

Procédez comme suit pour créer un service lié à Azure Databricks Delta Lake dans l’interface utilisateur du portail Azure.

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

  2. Recherchez delta et sélectionnez le connecteur Azure Databricks Delta Lake.

    Screenshot du connecteur Delta Lake Azure Databricks.

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

    Capture d'écran de la configuration pour un service lié Azure Databricks Delta Lake.

Informations de configuration du connecteur

Les sections suivantes fournissent des détails sur les propriétés qui définissent des entités spécifiques à un connecteur Delta Lake Azure Databricks.

Propriétés du service lié

Ce connecteur Azure Databricks Delta Lake prend en charge les types d’authentification suivants. Pour plus d’informations, consultez les sections correspondantes.

Access token (Jeton d’accès)

Les propriétés suivantes sont prises en charge pour le service lié Azure Databricks Delta Lake :

Propriété Description Obligatoire
type La propriété de type doit être définie sur AzureDatabricksDeltaLake. Oui
domaine Spécifiez l’URL de l’espace de travail Azure Databricks, par exemple https://adb-xxxxxxxxx.xx.azuredatabricks.net.
clusterId Spécifiez l’ID de cluster d’un cluster existant. Il doit s’agir d’un cluster interactif déjà créé.
Vous pouvez trouver l’ID de cluster d’un cluster interactif dans l’espace de travail Databricks -> Clusters -> Nom du cluster interactif -> Configuration -> Étiquettes. En savoir plus
accessToken Le jeton d’accès est requis pour que le service s’authentifie auprès de Azure Databricks. Un jeton d’accès doit être généré à partir de l’espace de travail Databricks. Des étapes plus détaillées pour rechercher le jeton d’accès sont disponibles ici.
connectVia Le runtime d’intégration utilisé pour la connexion à la banque de données. Vous pouvez utiliser le Azure runtime d’intégration ou un runtime d’intégration auto-hébergé (si votre magasin de données se trouve dans un réseau privé). S’il n’est pas spécifié, il utilise le runtime d’intégration Azure par défaut. Non

Exemple :

{
    "name": "AzureDatabricksDeltaLakeLinkedService",
    "properties": {
        "type": "AzureDatabricksDeltaLake",
        "typeProperties": {
            "domain": "https://adb-xxxxxxxxx.xx.azuredatabricks.net",
            "clusterId": "<cluster id>",
            "accessToken": {
                "type": "SecureString", 
                "value": "<access token>"
          	}
        }
    }
}

Authentification d’une identité gérée assignée par le système

Pour en savoir plus sur les identités managées affectées par le système pour les ressources Azure, consultez identité managée affectée par le système pour les ressources Azure.

Pour utiliser l’authentification via une identité managée affectée par le système, procédez comme suit pour accorder les autorisations :

  1. Récupérez les informations d’identité managée en copiant la valeur de l’ d’objet d’identité managée (ID) générée en même temps que votre fabrique de données ou espace de travail Synapse.

  2. Accordez à l’identité managée les autorisations appropriées dans Azure Databricks. En règle générale, vous devez accorder au moins le rôle Contributor à votre identité managée affectée par le système dans Access control (IAM) de Azure Databricks.

Les propriétés suivantes sont prises en charge pour le service lié Azure Databricks Delta Lake :

Propriété Description Obligatoire
type La propriété de type doit être définie sur AzureDatabricksDeltaLake. Oui
domaine Spécifiez l’URL de l’espace de travail Azure Databricks, par exemple https://adb-xxxxxxxxx.xx.azuredatabricks.net. Oui
clusterId Spécifiez l’ID de cluster d’un cluster existant. Il doit s’agir d’un cluster interactif déjà créé.
Vous pouvez trouver l’ID de cluster d’un cluster interactif dans l’espace de travail Databricks -> Clusters -> Nom du cluster interactif -> Configuration -> Étiquettes. En savoir plus
Oui
workspaceResourceId Spécifiez l’ID de ressource de l’espace de travail de votre Azure Databricks. Oui
connectVia Le runtime d’intégration utilisé pour la connexion à la banque de données. Vous pouvez utiliser le Azure runtime d’intégration ou un runtime d’intégration auto-hébergé (si votre magasin de données se trouve dans un réseau privé). S’il n’est pas spécifié, il utilise le runtime d’intégration Azure par défaut. Non

Exemple :

{
    "name": "AzureDatabricksDeltaLakeLinkedService",
    "properties": {
        "type": "AzureDatabricksDeltaLake",
        "typeProperties": {
            "domain": "https://adb-xxxxxxxxx.xx.azuredatabricks.net",
            "clusterId": "<cluster id>",
            "workspaceResourceId": "<workspace resource id>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Authentification d’identité gérée assignée par l'utilisateur

Pour en savoir plus sur les identités managées affectées par l’utilisateur pour les ressources Azure, consultez identités managées affectées par l’utilisateur

Pour utiliser l’authentification par identité managée affectée par l’utilisateur, effectuez les étapes suivantes :

  1. Créer une ou plusieurs identités managées affectées par l’utilisateur et accorder l’autorisation dans votre Azure Databricks. En règle générale, vous devez accorder au moins le rôle Contributor à votre identité managée affectée par l’utilisateur dans Access control (IAM) de Azure Databricks.

  2. Attribuez une ou plusieurs identités managées attribuées par l'utilisateur à votre Data Factory ou espace de travail Synapse, et créez des identifiants pour chaque identité.

Les propriétés suivantes sont prises en charge pour le service lié Azure Databricks Delta Lake :

Propriété Description Obligatoire
type La propriété de type doit être définie sur AzureDatabricksDeltaLake. Oui
domaine Spécifiez l’URL de l’espace de travail Azure Databricks, par exemple https://adb-xxxxxxxxx.xx.azuredatabricks.net. Oui
clusterId Spécifiez l’ID de cluster d’un cluster existant. Il doit s’agir d’un cluster interactif déjà créé.
Vous pouvez trouver l’ID de cluster d’un cluster interactif dans l’espace de travail Databricks -> Clusters -> Nom du cluster interactif -> Configuration -> Étiquettes. En savoir plus
Oui
credentials Spécifiez l'identité managée attribuée par l'utilisateur comme objet d'informations d'identification. Oui
workspaceResourceId Spécifiez l’ID de ressource de l’espace de travail de votre Azure Databricks. Oui
connectVia Le runtime d’intégration utilisé pour la connexion à la banque de données. Vous pouvez utiliser le Azure runtime d’intégration ou un runtime d’intégration auto-hébergé (si votre magasin de données se trouve dans un réseau privé). S’il n’est pas spécifié, il utilise le runtime d’intégration Azure par défaut. Non

Exemple :

{
    "name": "AzureDatabricksDeltaLakeLinkedService",
    "properties": {
        "type": "AzureDatabricksDeltaLake",
        "typeProperties": {
            "domain": "https://adb-xxxxxxxxx.xx.azuredatabricks.net",
            "clusterId": "<cluster id>",
            "credential": {
                "referenceName": "credential1",
                "type": "CredentialReference"
            },
            "workspaceResourceId": "<workspace resource id>"
        },
        "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 Azure Databricks Delta Lake.

Propriété Description Obligatoire
type La propriété type du jeu de données doit être définie sur AzureDatabricksDeltaLakeDataset. Oui
base de données Nom de la base de données. Non pour Source, Oui pour Récepteur
tableau Nom de la table Delta. Non pour Source, Oui pour Récepteur

Exemple :

{
    "name": "AzureDatabricksDeltaLakeDataset",
    "properties": {
        "type": "AzureDatabricksDeltaLakeDataset",
        "typeProperties": {
            "database": "<database name>",
            "table": "<delta table name>"
        },
        "schema": [ < physical schema, optional, retrievable during authoring > ],
        "linkedServiceName": {
            "referenceName": "<name of linked service>",
            "type": "LinkedServiceReference"
        }
    }
}

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 l’article Pipelines. Cette section fournit la liste des propriétés prises en charge par la source et le récepteur Delta Lake Azure Databricks.

Delta Lake en tant que source

Pour copier des données à partir de Azure Databricks Delta Lake, les propriétés suivantes sont prises en charge dans la section activité Copy source.

Propriété Description Obligatoire
type La propriété type de la source activité Copy doit être définie sur AzureDatabricksDeltaLakeSource. Oui
requête Spécifier la requête SQL pour lire les données. Pour le contrôle du voyage dans le temps, suivez le modèle ci-dessous :
- SELECT * FROM events TIMESTAMP AS OF timestamp_expression
- SELECT * FROM events VERSION AS OF version
Non
paramètresD'exportation Paramètres avancés utilisés pour récupérer des données de la table Delta. Non
Sous exportSettings :
type Type de la commande d’exportation, définie sur AzureDatabricksDeltaLakeExportCommand. Oui
dateFormat Définissez le format du type date sur une chaîne avec un format de date. Les formats de date personnalisés suivent les formats du modèle datetime. En l’absence de spécification, la valeur par défaut est yyyy-MM-dd. Non
timestampFormat Définissez le format du type timestamp sur une chaîne avec un format timestamp. Les formats de date personnalisés suivent les formats du modèle datetime. En l’absence de spécification, la valeur par défaut est yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]. Non

Copie directe à partir de Delta Lake

Si le format et le magasin de données récepteur remplissent les critères décrits dans cette section, vous pouvez utiliser l’activité de copie pour effectuer une copie directe de la table Delta Azure Databricks vers un récepteur. Le service vérifie les paramètres et provoque l'échec de l'exécution de l'activité de copie si les critères suivants ne sont pas remplis :

  • Le service lié au récepteur est Stockage Blob Azure ou Azure Data Lake Storage Gen2. Les informations d’identification du compte doivent être préconfigurées dans Azure Databricks configuration du cluster, en savoir plus sur Prerequisites.

  • Le format de données du récepteur est Parquet, Texte délimité ou Avro avec les configurations suivantes, et pointe vers un dossier plutôt qu’un fichier.

    • Pour le format Parquet, le codec de compression est aucun, snappyou gzip.
    • Pour le format texte délimité :
      • rowDelimiter est un caractère unique quelconque.
      • compression peut être aucun, bzip2 ou gzip.
      • encodingName UTF-7 n'est pas supporté.
    • Pour le format Avro, le codec de compression est aucun, deflate ou snappy.
  • Dans la source activité Copy, additionalColumns n’est pas spécifié.

  • Si vous copiez des données dans du texte délimité, dans le récepteur de l’activité de copie, fileExtension doit être « .csv ».

  • Dans le mappage activité Copy, la conversion de type n’est pas activée.

Exemple :

"activities":[
    {
        "name": "CopyFromDeltaLake",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Delta lake input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "AzureDatabricksDeltaLakeSource",
                "sqlReaderQuery": "SELECT * FROM events TIMESTAMP AS OF timestamp_expression"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Copie intermédiaire à partir de Delta Lake

Lorsque votre magasin de données récepteur ou format ne correspond pas aux critères de copie directe, comme indiqué dans la dernière section, activez la copie intermédiaire intégrée à l’aide d’une instance de stockage temporaire Azure. La fonctionnalité de copie intermédiaire offre également un meilleur débit. Le service exporte les données de Azure Databricks Delta Lake vers le stockage intermédiaire, copie ensuite les données vers le stockage de destination, et supprime enfin vos données temporaires du stockage intermédiaire. Pour plus d’informations sur la copie de données à l’aide de la mise en lots, consultez Copie intermédiaire.

Pour utiliser cette fonctionnalité, créez un service lié Stockage Blob Azure ou un service lié Azure Data Lake Storage Gen2 qui fait référence au compte de stockage comme intermédiaire temporaire. Spécifiez ensuite les propriétés enableStaging et stagingSettings dans le activité Copy.

Note

Les informations d’identification du compte de stockage intermédiaire doivent être préconfigurées dans la configuration du cluster Azure Databricks, voir Prérequis pour en savoir plus.

Exemple :

"activities":[
    {
        "name": "CopyFromDeltaLake",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Delta lake input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "AzureDatabricksDeltaLakeSource",
                "sqlReaderQuery": "SELECT * FROM events TIMESTAMP AS OF timestamp_expression"
            },
            "sink": {
                "type": "<sink type>"
            },
            "enableStaging": true,
            "stagingSettings": {
                "linkedServiceName": {
                    "referenceName": "MyStagingStorage",
                    "type": "LinkedServiceReference"
                },
                "path": "mystagingpath"
            }
        }
    }
]

Delta Lake en tant que récepteur

Pour copier des données vers Azure Databricks Delta Lake, les propriétés suivantes sont prises en charge dans la section activité Copy sink.

Propriété Description Obligatoire
type Propriété type du récepteur de l’activité de copie, définie sur AzureDatabricksDeltaLakeSink. Oui
preCopyScript Spécifiez une requête SQL pour l’activité Copy à exécuter avant d’écrire des données dans la table delta Databricks dans chaque exécution. Exemple : VACUUM eventsTable DRY RUN vous pouvez utiliser cette propriété pour nettoyer les données préchargées ou ajouter une instruction Tronquer la table ou Vider. Non
paramètres d'importation Paramètres avancés utilisés pour écrire des données dans la table Delta. Non
Sous importSettings :
type Type de la commande d’importation, définie sur AzureDatabricksDeltaLakeImportCommand. Oui
dateFormat Définissez le format de la chaîne sur un type date avec un format de date. Les formats de date personnalisés suivent les formats du modèle datetime. En l’absence de spécification, la valeur par défaut est yyyy-MM-dd. Non
timestampFormat Définissez le format de la chaîne sur un type timestamp avec un format timestamp. Les formats de date personnalisés suivent les formats du modèle datetime. En l’absence de spécification, la valeur par défaut est yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]. Non

Copie directe vers Delta Lake

Si votre magasin de données source et votre format répondent aux critères décrits dans cette section, vous pouvez utiliser le activité Copy pour copier directement à partir de la source vers Azure Databricks Delta Lake. Le service vérifie les paramètres et provoque l'échec de l'exécution de l'activité de copie si les critères suivants ne sont pas remplis :

  • Le service source lié est Azure Stockage Blob ou Azure Data Lake Storage Gen2. Les informations d’identification du compte doivent être préconfigurées dans Azure Databricks configuration du cluster, en savoir plus sur Prerequisites.

  • Le format de données de la source est Parquet, Texte délimité ou Avro avec les configurations suivantes, et pointe vers un dossier plutôt qu’un fichier.

    • Pour le format Parquet, le codec de compression est aucun, snappyou gzip.
    • Pour le format texte délimité :
      • rowDelimiter est la valeur par défaut ou n’importe quel caractère unique.
      • compression peut être aucun, bzip2 ou gzip.
      • encodingName UTF-7 n'est pas supporté.
    • Pour le format Avro, le codec de compression est aucun, deflate ou snappy.
  • Dans la source de l'activité de copie :

    • wildcardFileName contient uniquement le caractère générique * mais pas ?, et wildcardFolderName n’est pas spécifié.
    • prefix, modifiedDateTimeStart, modifiedDateTimeEnd et enablePartitionDiscovery ne sont pas spécifiés.
    • additionalColumns n'est pas spécifié.
  • Dans le mappage activité Copy, la conversion de type n’est pas activée.

Exemple :

"activities":[
    {
        "name": "CopyToDeltaLake",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Delta lake output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "AzureDatabricksDeltaLakeSink",
                "sqlReaderQuery": "VACUUM eventsTable DRY RUN"
            }
        }
    }
]

Copie intermédiaire vers Delta Lake

Lorsque votre magasin de données source ou format ne correspond pas aux critères de copie directe, comme indiqué dans la dernière section, activez la copie intermédiaire intégrée à l’aide d’une instance de stockage intermédiaire Azure. La fonctionnalité de copie intermédiaire offre également un meilleur débit. Le service convertit automatiquement les données pour respecter les exigences du format de données dans le stockage intermédiaire, puis charge les données dans Delta Lake à partir de là. Enfin, il nettoie vos données temporaires de l'espace de stockage. Pour plus d’informations sur la copie de données à l’aide de la mise en lots, consultez Copie intermédiaire.

Pour utiliser cette fonctionnalité, créez un service lié Stockage Blob Azure ou un service lié Azure Data Lake Storage Gen2 qui fait référence au compte de stockage comme intermédiaire temporaire. Spécifiez ensuite les propriétés enableStaging et stagingSettings dans le activité Copy.

Note

Les informations d’identification du compte de stockage intermédiaire doivent être préconfigurées dans la configuration du cluster Azure Databricks, voir Prérequis pour en savoir plus.

Exemple :

"activities":[
    {
        "name": "CopyToDeltaLake",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Delta lake output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "AzureDatabricksDeltaLakeSink"
            },
            "enableStaging": true,
            "stagingSettings": {
                "linkedServiceName": {
                    "referenceName": "MyStagingBlob",
                    "type": "LinkedServiceReference"
                },
                "path": "mystagingpath"
            }
        }
    }
]

Surveillance

La même expérience de surveillance de l'activité de copie est fournie que pour les autres connecteurs. En outre, étant donné que le chargement de données depuis/vers Delta Lake s’exécute sur votre cluster Azure Databricks, vous pouvez afficher des journaux de cluster détaillés et surveiller les performances.

Propriétés de l’activité Lookup

Pour plus d’informations sur les propriétés, consultez Activité de recherche.

L’activité de recherche peut retourner jusqu’à 1 000 lignes. Si le jeu de résultats contient plus d’enregistrements, les 1 000 premières lignes sont retournées.

Pour obtenir la liste des magasins de données pris en charge en tant que sources et récepteurs par activité Copy, consultez magasins de données et formats pris en charge.