Accéder aux données Databricks à l'aide de systèmes externes
Cette page fournit un aperçu des fonctionnalités et des recommandations pour rendre les données gérées et gouvernées par Databricks accessibles aux systèmes externes.
Ces modèles se concentrent sur les scénarios où votre organisation doit intégrer des outils ou systèmes fiables aux données Databricks. Si vous recherchez des conseils sur le partage de données en dehors de votre organisation, consultez Partager des données et des assets d'IA en toute sécurité.
Quels accès externes Databricks prend-il en charge ?
Databricks recommande d'utiliser Unity Catalog pour régir tous vos assets de données. Unity Catalog fournit des intégrations aux clients Delta Lake utilisant l'API REST Unity et aux clients Apache Iceberg utilisant le catalogue REST Iceberg. Pour une liste complète des intégrations prises en charge, voir intégrations Unity Catalog.
Unity Catalog prend également en charge le mode de compatibilité pour les tables gérées, les vues matérialisées et les tables de streaming, ce qui permet un accès en lecture seule depuis les clients qui ne prennent pas en charge les APIs REST. Dans ce cas, ils peuvent accéder directement aux données dans une copie clonée des données.
Le tableau suivant fournit un aperçu des formats pris en charge et des modèles d'accès pour les objets Unity Catalog.
Objet Unity Catalog | Formats pris en charge | Modèles d'accès |
|---|---|---|
Tables gérées | Delta Lake, Iceberg | API REST Unity, catalogue REST Iceberg, OpenSharing, mode de compatibilité (lecture seule) |
Vues matérialisées et tables de streaming | Delta Lake, Iceberg | Utilisez l'accès externe pour les pipelines pour les clients qui prennent en charge Delta 4,0 ou Iceberg v3. Mode de compatibilité pour les anciens clients. Lecture seule. Unity REST API, Iceberg REST catalog, accès aux fichiers (via le mode de compatibilité) |
Tables externes | Delta Lake | API REST Unity, catalogue Iceberg REST, OpenSharing, URI cloud |
Tables externes | CSV, JSON, Avro, Parquet, ORC, texte | API REST Unity, URI cloud |
Volumes externes | Tous les types de données | URI de cloud |
Tables étrangères* | Delta Lake, Iceberg | API REST Unity, catalogue REST Iceberg (Préversion), OpenSharing |
Tables étrangères* | CSV, JSON, Avro, Parquet, ORC, texte | API REST Unity, URI cloud |
* Seules les tables externes fédérées à l'aide de la fédération de catalogues sont prises en charge. Pour garantir des lectures fraîches à partir de moteurs externes sur des tables étrangères, les clients peuvent périodiquement refresh les métadonnées à l'aide des Lakeflow jobs.
Pour plus de détails sur ces objets Unity Catalog, voir ce qui suit :
- Tables gérées par Unity Catalog pour Delta Lake et Apache Iceberg
- Travailler avec des tables externes.
- Que sont les volumes Unity Catalog ?
Fourniture d'informations d'identification Unity Catalog
La distribution de justificatifs d'identification de Unity Catalog permet aux utilisateurs de configurer des clients externes pour hériter des privilèges sur les données régies par Databricks. Les clients Iceberg et Delta peuvent prendre en charge la distribution d'informations d'identification. Consultez la fourniture d'informations d'identification Unity Catalog pour l'accès aux systèmes externes.
Accéder aux tables avec des clients Delta
Utilisez l'API REST Unity pour lire, écrire et créer des tables gérées et externes Unity Catalog reposant sur Delta Lake à partir de clients Delta pris en charge. Consultez Accéder aux tables Databricks à partir des clients Delta.
Aperçu
La création et l'écriture dans des tables gérées par Unity Catalog à partir de clients Delta sont en aperçu public.
Pour les tables externes, Unity Catalog ne régit pas les lectures et écritures effectuées directement sur le stockage d’objets cloud à partir de systèmes externes. Vous devez donc configurer des stratégies et des informations d’identification supplémentaires dans votre compte cloud pour vous assurer que les politiques de gouvernance des données sont respectées en dehors de Databricks.
Afin d'éviter les problèmes potentiels de corruption et de perte de données, Databricks vous recommande de ne pas modifier la même table Delta stockée dans S3 depuis différents Workspace ou clients.
Vous pouvez utiliser Cloudflare R2 pour le stockage d’objets cloud si vous avez besoin d’écritures de plusieurs clients. Voir Se connecter à un emplacement externe Cloudflare R2.
La documentation Databricks énumère les limitations et les considérations de compatibilité basées sur les versions de Databricks Runtime et les fonctionnalités de la plateforme. Vous devez confirmer les protocoles de lecture et d'écriture ainsi que les fonctionnalités de table pris en charge par votre client. Rendez-vous sur delta.io.
Accéder aux tables avec les clients Iceberg
Databricks offre aux clients Iceberg un support de lecture, d'écriture et de création pour les tables enregistrées dans Unity Catalog. Les clients pris en charge incluent Apache Spark, Apache Flink, Trino et Snowflake. Consulter Accéder aux tables Databricks depuis les clients Apache Iceberg.
Partager des tables en lecture seule entre les domaines
Vous pouvez utiliser OpenSharing pour accorder un accès en lecture seule aux tables Delta gérées ou externes sur plusieurs domaines et systèmes pris en charge. Les solutions logicielles qui prennent en charge les lectures sans copie des tables OpenSharing incluent SAP, Amperity et Oracle. Voir Partager des assets de données et d'IA en toute sécurité.
Vous pouvez également utiliser OpenSharing pour accorder un accès en lecture seule à des clients ou des Partenaires. OpenSharing prend également en charge les données partagées à l'aide de la Databricks Marketplace.
Accéder aux données tabulaires non-Delta Lake avec des tables externes
Les tables externes Unity Catalog prennent en charge de nombreux formats autres que Delta Lake, notamment Parquet, ORC, CSV et JSON. Les tables externes stockent tous les fichiers de données dans des répertoires situés dans un emplacement de stockage d’objets cloud spécifié par une URI cloud fournie lors de la création de la table. D'autres systèmes accèdent à ces fichiers de données directement à partir du stockage d'objets cloud.
Unity Catalog ne régit pas les lectures et écritures effectuées directement sur le stockage d'objets cloud à partir de systèmes externes. Vous devez donc configurer des politiques et des identifiants supplémentaires dans votre compte cloud pour vous assurer que les politiques de gouvernance des données sont respectées en dehors de Databricks.
La lecture et l'écriture dans des tables externes à partir de plusieurs systèmes peuvent entraîner des problèmes de cohérence et une corruption des données, car aucune garantie transactionnelle n'est fournie pour les formats autres que Delta Lake.
Unity Catalog pourrait ne pas détecter les nouvelles partitions écrites dans des tables externes basées sur des formats autres que Delta Lake. Databricks recommande d'exécuter régulièrement MSCK REPAIR TABLE table_name pour s'assurer que Unity Catalog a enregistré tous les fichiers de données écrits par des systèmes externes.
Accéder aux données non tabulaires avec des volumes externes.
Databricks recommande d'utiliser des volumes externes pour stocker les fichiers de données non tabulaires qui sont lus ou écrits par des systèmes externes en plus de Databricks. Consultez Que sont les volumes Unity Catalog ?.
Unity Catalog ne régit pas les lectures et écritures effectuées directement sur le stockage d'objets cloud à partir de systèmes externes. Vous devez donc configurer des politiques et des identifiants supplémentaires dans votre compte cloud pour vous assurer que les politiques de gouvernance des données sont respectées en dehors de Databricks.
Volumes fournit des APIs, des SDKs et d’autres outils pour obtenir des fichiers à partir de volumes et y placer des fichiers. Consultez Travailler avec les fichiers dans les volumes Unity Catalog.
OpenSharing vous permet de partager des volumes avec d'autres comptes Databricks, mais ne s'intègre pas aux systèmes externes.