Gérer les emplacements externes
Cette page décrit comment lister, afficher, mettre à jour, accorder des autorisations sur, gérer les événements de fichier pour, et supprimer des emplacements externes.
Databricks recommande de gérer l'accès aux fichiers à l'aide de volumes. Consultez Que sont les volumes Unity Catalog ?.
Décrire un emplacement externe
Pour consulter les propriétés d'un emplacement externe, y compris les autorisations et l'accès au workspace, vous pouvez utiliser l'explorateur de catalogues ou une commande SQL.
- Catalog Explorer
- SQL
- Dans la barre latérale, cliquez sur
Catalogue .
- Cliquez sur Connecter > Emplacements externes .
- Cliquez sur le nom d'un emplacement externe pour afficher ses propriétés.
Exécutez la commande suivante dans un Notebook ou l'éditeur Databricks SQL. Remplacer <location-name> par le nom de l'emplacement externe.
DESCRIBE EXTERNAL LOCATION <location-name>;
Afficher les octrois sur un emplacement externe
Pour afficher les autorisations sur un emplacement externe, vous pouvez utiliser l'Explorateur de catalogues ou une commande SQL.
- Catalog Explorer
- SQL
- Dans la barre latérale, cliquez sur
Catalogue .
- Cliquez sur Connecter > Emplacements externes .
- Cliquez sur le nom d'un emplacement externe.
- Cliquez sur Autorisations .
Pour afficher les octrois sur un emplacement externe, utilisez une commande comme celle-ci. Vous pouvez éventuellement filtrer les résultats pour n'afficher que les octrois pour le principal spécifié.
SHOW GRANTS [<principal>] ON EXTERNAL LOCATION <location-name>;
Remplacez les valeurs des espaces réservés :
<location-name>: le nom de l'emplacement externe qui autorise la lecture et l'écriture dans le compartiment de votre tenant cloud.<principal>: L'adresse e-mail d'un utilisateur au niveau du compte ou le nom d'un groupe au niveau du compte. Si un groupe ou un nom d'utilisateur contient un espace ou le symbole@, utilisez des apostrophes inversées (` `) autour, pas des apostrophes.
Accordez les autorisations sur un emplacement externe
Cette section décrit comment accorder et révoquer des autorisations sur un emplacement externe à l'aide de Catalog Explorer et de commandes SQL dans un Notebook ou une query SQL. Pour en savoir plus sur l'utilisation du CLI Databricks ou de Terraform, consultez la documentation Databricks Terraform et le CLI Databricks.
Autorisations requises : Le privilège CREATE EXTERNAL LOCATION sur le metastore et sur les informations d'identification de stockage référencées dans l'emplacement externe, ou le privilège MANAGE sur l'emplacement externe. Les administrateurs de métastore disposent de CREATE EXTERNAL LOCATION sur le métastore par default.
WRITE FILES exige que READ FILES soit également accordé sur le même emplacement externe. Les opérations d'écriture impliquent des vérifications de métadonnées et une validation de chemin qui nécessitent un accès en lecture. Un utilisateur avec seulement WRITE FILES reçoit une erreur PERMISSION_DENIED en tentant d'écrire des fichiers. Pour accorder les deux privilèges ensemble, utilisez ce qui suit :
GRANT READ FILES, WRITE FILES ON EXTERNAL LOCATION <location-name> TO <principal>;
Pour accorder l'autorisation d'utiliser un emplacement externe :
- Catalog Explorer
- SQL
- Dans la barre latérale, cliquez sur
Catalogue .
- Cliquez sur Connecter > Emplacements externes .
- Cliquez sur le nom d'un emplacement externe pour ouvrir ses propriétés.
- Cliquez sur Autorisations .
- Pour accorder l'autorisation aux utilisateurs ou aux groupes, sélectionnez chaque identité, puis cliquez sur Accorder .
- Pour révoquer les autorisations des utilisateurs ou des groupes, sélectionnez chaque identité, puis cliquez sur **Révoquer**.
Exécutez la commande SQL suivante dans un Notebook ou un éditeur de query SQL. Cet exemple donne la possibilité de créer une table externe qui référence l'emplacement externe :
GRANT CREATE EXTERNAL TABLE ON EXTERNAL LOCATION <location-name> TO <principal>;
Remplacez les valeurs des espaces réservés :
<location-name>: le nom de l'emplacement externe qui autorise la lecture et l'écriture dans le compartiment de votre tenant cloud.<principal>: L'adresse e-mail d'un utilisateur au niveau du compte ou le nom d'un groupe au niveau du compte.
Attribuer un emplacement externe à des workspaces spécifiques
Par default, un emplacement externe est accessible depuis tous les Workspaces du métastore. Cela signifie que si un utilisateur a obtenu un privilège (tel que READ FILES) sur cet emplacement externe, il peut exercer ce privilège depuis n'importe quel Workspace attaché au métastore. Si vous utilisez des Workspaces pour isoler l'accès aux données des utilisateurs, vous pourriez vouloir autoriser l'accès à un emplacement externe uniquement à partir de Workspaces spécifiques. Cette fonctionnalité est connue sous le nom de liaison de Workspace ou d'isolation d'emplacement externe.
Les cas d'utilisation typiques pour lier un emplacement externe à des Workspace spécifiques incluent :
- S'assurer que les data engineers qui ont le privilège
CREATE EXTERNAL TABLEsur un emplacement externe contenant des données de production peuvent créer des tables externes sur cet emplacement uniquement dans un workspace de production. - S'assurer que les data engineers qui ont le privilège
READ FILESsur un emplacement externe contenant des données sensibles ne peuvent utiliser que des workspaces spécifiques pour accéder à ces données.
Pour plus d'information sur la manière de restreindre d'autres types d'accès aux données par workspace, consultez Liaison workspace-catalogue.
Les liaisons de Workspace sont référencées au moment où les privilèges vis-à-vis de l'emplacement externe sont exercés. Par exemple, si un utilisateur crée une table externe en émettant l'instruction CREATE TABLE myCat.mySch.myTable LOCATION 's3://bucket/path/to/table' depuis le workspace myWorkspace, les vérifications de liaison de workspace suivantes sont effectuées en plus des vérifications de privilèges utilisateur habituelles :
- L'emplacement externe couvrant
's3://bucket/path/to/table'est-il lié àmyWorkspace? - Le catalogue
myCatest-il lié àmyWorkspaceavec le niveau d'accèsRead & Write?
Si l’emplacement externe est par la suite dissocié de myWorkspace, la table externe continue alors de fonctionner.
Cette fonctionnalité vous permet également de renseigner un catalogue à partir d'un workspace central et de le rendre disponible à d'autres workspaces à l'aide de liaisons de catalogue, sans avoir également à rendre l'emplacement externe disponible dans ces autres workspaces.
Associer un emplacement externe à un ou plusieurs workspaces
Pour attribuer un emplacement externe à des Workspaces spécifiques, vous pouvez utiliser Catalog Explorer ou la CLI Databricks.
Autorisations requises : administrateur du metastore, propriétaire de l'emplacement externe ou MANAGE sur l'emplacement externe.
Les administrateurs de métastore peuvent voir tous les emplacements externes dans un métastore en utilisant l'Explorateur de catalogue — et les propriétaires d'emplacements externes peuvent voir tous les emplacements externes qu'ils possèdent dans un métastore — qu'importe que l'emplacement externe soit attribué au workspace actuel. Les emplacements externes qui ne sont pas attribués au workspace apparaissent grisés.
- Catalog Explorer
- CLI
-
Connectez-vous à un Workspace lié au métastore.
-
Dans la barre latérale, cliquez sur
Catalogue .
-
Cliquez sur Connecter > Emplacements externes .
-
Sélectionnez l'emplacement externe et accédez à l'onglet Workspaces .
-
Dans l’onglet **tab**, décochez la case **Tous les Workspaces ont accès**.
Si votre emplacement externe est déjà lié à un ou plusieurs Workspace, cette case à cocher est déjà désélectionnée.
-
Cliquez sur Assigner aux workspaces et saisissez ou recherchez les workspaces que vous souhaitez assigner.
Pour révoquer l'accès, accédez à l'onglet Workspaces , sélectionnez le Workspace et cliquez sur Révoquer . Pour autoriser l'accès depuis tous les Workspaces, cochez la case Tous les Workspaces ont accès .
Il existe deux groupes de commandes CLI de Databricks et deux étapes nécessaires pour assigner un emplacement externe à un workspace.
Dans les exemples suivants, remplacez <profile-name> par le nom de votre profil de configuration d’authentification Databricks. Il doit inclure la valeur d’un jeton d’accès personnel, en plus du nom d’instance du Workspace et de l’ID du Workspace où vous avez généré le jeton d’accès personnel. Consultez Authentification par jeton d’accès personnel (hérité).
-
Utilisez la commande
updatedu groupe de commandesexternal-locationspour définirisolation modede l'emplacement externe àISOLATED:Bashdatabricks external-locations update <my-location> \
--isolation-mode ISOLATED \
--profile <profile-name>Le default
isolation-modeestOPENà tous les workspaces attachés au métastore. -
Utilisez la commande
update-bindingsdu groupe de commandesworkspace-bindingspour assigner les Workspace à l'emplacement externe :Bashdatabricks workspace-bindings update-bindings external-location <my-location> \
--json '{
"add": [{"workspace_id": <workspace-id>}...],
"remove": [{"workspace_id": <workspace-id>}...]
}' --profile <profile-name>Utilisez les propriétés
"add"et"remove"pour ajouter ou supprimer des liaisons de workspace.
La liaison en lecture seule (BINDING_TYPE_READ_ONLY) n’est pas disponible pour les emplacements externes. Il n'y a donc aucune raison de définir binding_type pour la liaison des emplacements externes.
Pour lister toutes les attributions de workspace pour un emplacement externe, utilisez la commande get-bindings du groupe de commandes workspace-bindings :
databricks workspace-bindings get-bindings external-location <my-location> \
--profile <profile-name>
Voir aussi Workspace Bindings dans la référence de l'API REST.
Dissocier un emplacement externe d'un Workspace
Les instructions pour révoquer l'accès du workspace à un emplacement externe à l'aide de Catalog Explorer ou du groupe de commandes workspace-bindings CLI sont incluses dans Lier un emplacement externe à un ou plusieurs workspaces.
Changer le propriétaire d'un emplacement externe
Le créateur d'un emplacement externe en est le propriétaire initial. Pour changer le propriétaire en un autre utilisateur ou groupe au niveau du compte, vous pouvez utiliser l'Explorateur de catalogues ou une commande SQL.
Autorisations requises : Propriétaire d'emplacement externe ou utilisateur disposant du privilège MANAGE.
- Catalog Explorer
- SQL
- Dans la barre latérale, cliquez sur
Catalogue .
- Cliquez sur Connecter > Emplacements externes .
- Cliquez sur le nom d'un emplacement externe.
- Cliquez sur
à côté de Propriétaire .
- Tapez pour rechercher un principal et sélectionnez-le.
- Cliquez sur Enregistrer .
Exécutez la commande suivante dans un Notebook ou l'éditeur Databricks SQL. Remplacez les valeurs d'espace réservé :
<location-name>: Le nom de l'identifiant.<principal>: L'adresse e-mail d'un utilisateur au niveau du compte ou le nom d'un groupe au niveau du compte. Si un groupe ou un nom d'utilisateur contient un espace ou un symbole@, utilisez des accents graves autour (pas des apostrophes). Par exemple, équipe financière.
ALTER EXTERNAL LOCATION <location-name> OWNER TO <principal>
Marquer un emplacement externe comme lecture seule
Si vous souhaitez que les utilisateurs aient un accès en lecture seule à un emplacement externe, vous pouvez utiliser l'Explorateur de catalogues pour marquer l'emplacement externe comme en lecture seule. Cela peut prendre jusqu'à 60 minutes pour que cette modification prenne effet sur toutes les ressources de compute.
Rendre les emplacements externes en lecture seule :
- Empêche les utilisateurs d'écrire des fichiers dans ces emplacements externes, indépendamment des autorisations d'écriture accordées par le rôle IAM qui sous-tend l'identifiant de stockage, et indépendamment des autorisations Unity Catalog accordées sur cet emplacement externe.
- Empêche les utilisateurs d'insérer des données dans les tables de ces emplacements externes.
- Empêche les utilisateurs de créer des tables ou des volumes gérés dans ces emplacements externes.
- Bloque la création de catalogues à l'aide d'emplacements externes en lecture seule.
- Permet au système de valider correctement l'emplacement externe au moment de la création.
Vous pouvez marquer les emplacements externes comme étant en lecture seule lorsque vous les créez.
Vous pouvez également utiliser l'Explorateur de catalogues pour modifier le statut en lecture seule après avoir créé un emplacement externe :
- Dans la barre latérale, cliquez sur
Catalogue .
- Cliquez sur Connecter > Emplacements externes .
- Sélectionnez l'emplacement externe, cliquez sur le menu
à côté du bouton Tester la connexion , et sélectionnez Modifier .
- Dans la boîte de dialogue de modification, cliquez sur Options avancées et sélectionnez l'option Limiter à l'utilisation en lecture seule .
- Cliquez sur Mettre à jour .
Configurez un algorithme de chiffrement sur un emplacement externe (AWS S3 uniquement)
AWS prend en charge les politiques de compartiment S3 qui exigent que les en-têtes de chiffrement soient définis par le client. Voir Exiger le chiffrement dans la documentation AWS. Si votre compartiment S3 nécessite des en-têtes de chiffrement pour les requêtes, vous devez configurer un algorithme de chiffrement sur l'emplacement externe dans Unity Catalog. Ce paramètre est utilisé pour configurer l'en-tête correct lors de l'accès aux données dans votre compartiment S3. Cette fonctionnalité n'est pas prise en charge pour l'accès aux tables externes partagées à l'aide d'OpenSharing.
-
Dans la barre latérale, cliquez sur
Catalogue .
-
Cliquez sur Connecter > Emplacements externes .
-
Sélectionnez l'emplacement externe. L'emplacement externe doit utiliser un rôle IAM pour un identifiant de stockage.
-
Cliquez sur le menu kebab
à côté du bouton Tester la connexion , et sélectionnez Modifier .
-
Dans la boîte de dialogue de modification, cliquez sur Options avancées .
-
Sous Algorithme de chiffrement , sélectionnez SSE-SE ou SSE-KMS en fonction de votre clé de chiffrement.
Pour **SSE-KMS**, sous **ARN de la clé KMS de chiffrement**, collez l’ARN de la clé KMS référencée par les clients lors de l’accès à l’emplacement S3.
-
Cliquez sur Mettre à jour .
Configure les événements de fichier pour un emplacement externe
Les emplacements externes avec des événements de fichier ne donnent pas à Databricks plus d'accès à vos données que les emplacements externes sans événements de fichier. Pour plus d'informations, consultez la FAQ sur les événements de fichier.
Si vous souhaitez ingérer des notifications de modification qui sont transmises par le fournisseur cloud, l'activation des événements de fichier pour l'emplacement externe présente les avantages suivants :
- Facilite la configuration des notifications de fichiers pour Auto Loader. Plus précisément, cela permet la découverte incrémentielle de fichiers avec des performances de type notification dans Auto Loader en définissant
cloudFiles.useManagedFileEventssurtrue. Voir Configurer les streams Auto Loader en mode notification de fichiers. - Améliore l'efficacité et la capacité des Trigger d'arrivée de fichier pour les Job. Consultez Trigger des jobs lorsque de nouveaux fichiers arrivent.
Pour un aperçu détaillé de la façon dont les événements de fichier interagissent avec l’ingestion, consultez Aperçu d’Auto Loader avec les événements de fichier. Pour les questions courantes concernant les événements de fichier, y compris les coûts, la sécurité et la configuration, consultez la FAQ sur les événements de fichier.
Avant de commencer
Si vous souhaitez que Databricks configure les files d'attente SQS en votre nom, votre emplacement externe doit faire référence à un identifiant de stockage qui accorde les autorisations adéquates. Consultez l'étape suivante pour les instructions.
Pour les files d'attente SQS, l'identité représentée par l'identifiant de stockage doit avoir les permissions suivantes :
sqs:ReceiveMessagesqs:DeleteMessagesqs:PurgeQueue
Étape 1 : Confirmez que Databricks a accès aux événements de fichier dans S3
Avant de pouvoir activer les événements de fichiers pour l'objet sécurisable de l'emplacement externe, vous devez vous assurer que votre compte S3 est configuré pour donner à Databricks accès aux événements de fichiers qu'il émet. Si vous souhaitez que Databricks configure les événements de fichiers dans S3 pour vous, vous devez également vous assurer que Databricks dispose des accès appropriés.
L'attribution de cet accès est une étape recommandée lorsque vous configurez les informations d'identification de stockage.
Pour vérifier que Databricks peut configurer et s'abonner aux notifications d'événements de votre compartiment :
-
Obtenez le rôle IAM.
-
Dans la barre latérale, cliquez sur
Catalogue .
-
Cliquez sur Connecter > Emplacements externes .
-
Sélectionnez l'emplacement externe.
-
Sous l' tab Vue d'ensemble, cliquez sur le nom de l' identifiant .
-
Sur le **tab** **Vue d'ensemble** des identifiants de stockage, copiez le rôle **IAM (ARN)**.
Vous utiliserez ceci à l'étape suivante.
-
-
Connectez-vous à votre compte AWS.
-
Allez dans IAM et recherchez le rôle que vous avez copié à l'étape 1.
-
Sous Stratégies d'autorisations , recherchez la ou les stratégies IAM associées au rôle IAM et ouvrez-la/les.
-
Ouvrez la ou les politiques et confirmez qu'il en existe une qui inclut les propriétés suivantes.
Pour que Databricks crée automatiquement des ressources de notification (
File event typedéfini surAutomatic), utilisez la politique suivante. Il permet à votre compte Databricks de mettre à jour la configuration de notification d'événements de votre compartiment, de créer un sujet SNS, de créer une file d'attente SQS et d'abonner la file d'attente SQS au sujet SNS.Remplacez
<BUCKET>par le nom de votre compartiment S3.JSON{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ManagedFileEventsSetupStatement",
"Effect": "Allow",
"Action": [
"s3:GetBucketNotification",
"s3:PutBucketNotification",
"sns:ListSubscriptionsByTopic",
"sns:GetTopicAttributes",
"sns:SetTopicAttributes",
"sns:CreateTopic",
"sns:TagResource",
"sns:Publish",
"sns:Subscribe",
"sqs:CreateQueue",
"sqs:DeleteMessage",
"sqs:ReceiveMessage",
"sqs:SendMessage",
"sqs:GetQueueUrl",
"sqs:GetQueueAttributes",
"sqs:SetQueueAttributes",
"sqs:TagQueue",
"sqs:ChangeMessageVisibility",
"sqs:PurgeQueue"
],
"Resource": ["arn:aws:s3:::<BUCKET>", "arn:aws:sqs:*:*:csms-*", "arn:aws:sns:*:*:csms-*"]
},
{
"Sid": "ManagedFileEventsListStatement",
"Effect": "Allow",
"Action": ["sqs:ListQueues", "sqs:ListQueueTags", "sns:ListTopics"],
"Resource": ["arn:aws:sqs:*:*:csms-*", "arn:aws:sns:*:*:csms-*"]
},
{
"Sid": "ManagedFileEventsTeardownStatement",
"Effect": "Allow",
"Action": ["sns:Unsubscribe", "sns:DeleteTopic", "sqs:DeleteQueue"],
"Resource": ["arn:aws:sqs:*:*:csms-*", "arn:aws:sns:*:*:csms-*"]
}
]
}Utilisation d'une file d'attente fournie pour S3
Sinon, pour configurer vous-même les ressources de notification et fournir à Databricks un endpoint de file d'attente (
File event typedéfini surProvided), utilisez la politique suivante. Ceci est une opération en libre-service et Databricks ne sera pas en mesure de fournir un support pour configurer les ressources.Remplacez
<QUEUE_NAME>par le nom de votre file d'attente SQS.JSON{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ManagedFileEventsReadStatement",
"Effect": "Allow",
"Action": ["sqs:DeleteMessage", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:PurgeQueue"],
"Resource": ["arn:aws:sqs:*:*:<QUEUE_NAME>"]
}
]
}Lorsque vous utilisez une file d'attente fournie, la file d'attente doit être abonnée aux notifications d'événements S3 pour le préfixe du compartiment qui correspond à l'emplacement externe. Les événements peuvent être acheminés directement vers la file d’attente, ou acheminés via SNS ou EventBridge. Lorsque vous routez directement vers SQS ou via SNS, assurez-vous que la file d'attente est abonnée aux notifications suivantes :
s3:ObjectCreated:*s3:ObjectRemoved:*s3:LifecycleExpiration:*
Lors du routage via EventBridge, assurez-vous que la file d'attente est abonnée aux notifications suivantes :
Object CreatedObject Deleted
Voir aussi Créer un identifiant de stockage qui accède à un compartiment S3 AWS.
-
Si cette politique est manquante, ajoutez-la au rôle IAM.
Étape 2 : Choisissez un type d'événement de fichier
Lorsque vous activez les événements de fichier, vous devez sélectionner un type d’événement de fichier. Le type détermine si Databricks ou votre organisation gère l'infrastructure de notification.
-
**Automatique (recommandé) :** Databricks crée et gère l'infrastructure de notification dans votre compte cloud et valide qu'elle est correctement configurée. Il s’agit de la configuration la plus simple et ne nécessite aucune configuration cloud supplémentaire au-delà des autorisations relatives aux événements de fichiers.
Lorsque vous activez les événements de fichier en mode **Automatique**, Databricks configure votre compartiment S3 pour publier des notifications de modification de fichier sur une rubrique SNS gérée (avec le
csms-*préfixe) et provisionne une file d'attente SQS abonnée à cette rubrique. Le service Databricks d'événements de fichiers lit les métadonnées de chemin de fichier depuis la file d'attente pour découvrir les fichiers nouveaux et modifiés. Le contenu des fichiers ne passe jamais par SNS ou SQS. -
Fourni : vous créez, gérez et validez vous-même la file d'attente de notifications, puis vous fournissez les détails de la file d'attente à Databricks. Utilisez ce mode uniquement si les politiques de sécurité de votre organisation interdisent aux services tiers de créer des ressources cloud. Databricks ne peut pas valider ou prendre en charge les configurations fournies ; la configuration et le dépannage sont en libre-service.
Étape 3 : Activez les « événements de fichiers » pour l'emplacement externe à l'aide de Catalog Explorer.
Les événements de fichiers sont activés par default pour tous les nouveaux emplacements externes. Si votre emplacement externe a déjà activé les événements de fichiers, vous pouvez ignorer cette étape.
Pour activer les événements de fichiers pour un emplacement existant :
-
Dans la barre latérale, cliquez sur
Catalogue .
-
Cliquez sur Connecter > Emplacements externes .
-
Sélectionnez l'emplacement externe.
-
Cliquez sur le menu kebab
à côté du bouton Tester la connexion , et sélectionnez Modifier .
-
Dans la boîte de dialogue de modification, cliquez sur Options avancées .
-
Sélectionnez Événements de fichier .
-
Sélectionnez le type d'événement de fichier :
Automatique : (Recommandé) sélectionnez cette option si vous souhaitez que Databricks configure les abonnements et les événements pour vous.
**Fourni** : Sélectionnez cette option si vous avez déjà configuré une file d'attente SQS vous-même.
-
Si vous avez sélectionné le type d'événement de fichier **Fourni**, saisissez l'**URL de la file d'attente** de la file d'attente SQS
https://sqs.<region>.amazonaws.com/<account-ID>/<queue-name>existante :. -
Cliquez sur Mettre à jour .
-
Attendez quelques secondes et cliquez sur Tester la connexion sur la page de modification principale de l'emplacement externe pour confirmer que les événements de fichier ont été activés avec succès.
Limitations des événements de fichiers
Les événements de fichier sur les emplacements externes présentent les limitations suivantes :
-
Le cache des événements de fichier ne contient des métadonnées que pour les fichiers modifiés au cours des 7 derniers jours. Par conséquent, il ne peut prendre en charge les lectures incrémentielles que si vous exécutez Auto Loader au moins une fois tous les 7 jours. Si vous n’exécutez pas Auto Loader au moins aussi souvent, il effectue une liste complète du répertoire pour refresh le cache et le point de contrôle.
-
Le throughput des événements est limité à 2 000 fichiers ingérés par seconde.
-
Vous ne pouvez pas étiqueter les ressources cloud à l'aide de l'option
resourceTags. À la place, étiquetez les ressources à l'aide de la console cloud après que le service Auto Loader a créé vos ressources de file d'attente et d'abonnement. -
Vous ne pouvez pas configurer d'événements de fichier pour l'emplacement de stockage racine du metastore de Unity Catalog si aucun emplacement externe n'est défini pour cet emplacement de stockage.
Vous ne pouvez pas configurer d'événements de fichier sur des emplacements de stockage qui n'ont pas d'objet d'emplacement externe défini dans Unity Catalog. Certaines implémentations d'Unity Catalog incluent un emplacement de stockage racine du metastore qui n'est pas associé à un emplacement externe. Pour déterminer si c’est le cas pour votre emplacement de stockage racine du métastore :
-
En tant qu'administrateur de compte, connectez-vous à la console du compte.
-
Cliquez sur
le Catalogue .
-
Cliquez sur le nom du métastore.
-
Allez à l'onglet Configuration .
-
S’il existe une valeur pour le **chemin du compartiment S3**, cela signifie que la racine de votre metastore ne contient aucun objet d’emplacement externe défini.
Pour mettre à jour le stockage racine du metastore afin d'utiliser un emplacement externe, cliquez sur le bouton **Supprimer**. Un emplacement externe sera créé pour vous. Pour plus de détails, consultez Supprimer le stockage au niveau du métastore.
-
Créez un emplacement externe sans événements de fichiers
Les événements de fichiers sont activés par default pour les nouveaux emplacements externes car ils réduisent les coûts et améliorent les performances pour les charges de travail d'ingestion. Si vous avez besoin de créer un emplacement sans événements de fichiers (par exemple, pendant que les modifications IAM passent par votre processus d'approbation), vous pouvez refuser lors de la création.
- Catalog Explorer
- API
- Dans la barre latérale, cliquez sur
Catalogue .
- Cliquez sur Connecter > Emplacements externes .
- Commencez à créer un nouvel emplacement externe.
- Si l'identifiant de stockage n'a pas les autorisations d'événements de fichiers, un avertissement de validation apparaît. Cliquez sur Forcer la création pour continuer.
- Après la création, vérifiez que les événements de fichier sont désactivés en sélectionnant l'emplacement et en vérifiant le paramètre des événements de fichier.
Définissez enable_file_events sur false dans la requête de création d'emplacement externe.
Vous pouvez activer les événements de fichiers à tout moment en modifiant l'emplacement externe.
Modifier un emplacement externe
Le propriétaire d’un emplacement externe ou un utilisateur disposant du privilège MANAGE peut renommer, modifier l’URI et modifier les identifiants de stockage de l’emplacement externe.
Pour renommer un emplacement externe, procédez comme suit :
Exécutez la commande suivante dans un Notebook ou l'éditeur Databricks SQL. Remplacez les valeurs d'espace réservé :
<location-name>: Le nom de l'emplacement.<new-location-name>: Un nouveau nom pour l'emplacement.
ALTER EXTERNAL LOCATION <location-name> RENAME TO <new-location-name>;
Pour modifier l'URI vers lequel un emplacement externe pointe dans votre tenant cloud, procédez comme suit :
Exécutez la commande suivante dans un Notebook ou l'éditeur Databricks SQL. Remplacez les valeurs d'espace réservé :
<location-name>Le nom de l'emplacement externe.<url>: La nouvelle URL de stockage à laquelle l'emplacement doit autoriser l'accès dans votre tenant cloud.
ALTER EXTERNAL LOCATION location_name SET URL '<url>' [FORCE];
L'option FORCE modifie l'URL même si les tables externes dépendent de l'emplacement externe.
Pour modifier les identifiants de stockage qu'utilise un emplacement externe, procédez comme suit :
Exécutez la commande suivante dans un Notebook ou l'éditeur Databricks SQL. Remplacez les valeurs d'espace réservé :
<location-name>Le nom de l'emplacement externe.<credential-name>: Le nom de l’identifiant de stockage qui accorde l’accès à l’URL de l’emplacement dans votre tenant cloud.
ALTER EXTERNAL LOCATION <location-name> SET STORAGE CREDENTIAL <credential-name>;
Supprimer un emplacement externe
Pour supprimer (drop) un emplacement externe, vous devez en être le propriétaire ou disposer du privilège MANAGE sur l'emplacement externe. Pour supprimer un emplacement externe, procédez comme suit :
Exécutez la commande suivante dans un Notebook ou l'éditeur Databricks SQL. Les éléments entre parenthèses sont facultatifs. Remplacez <location-name> par le nom de l'emplacement externe.
DROP EXTERNAL LOCATION [IF EXISTS] <location-name>;