Configurations de l'accès aux données
Ces instructions s'appliquent aux modèles d'accès aux données hérités. Databricks recommande d'utiliser les emplacements externes de Unity Catalog pour l'accès aux données. Consultez Connectez-vous au stockage d'objets cloud à l'aide de Unity Catalog.
Cet article décrit comment gérer les profils d'instance et les propriétés d'accès aux données dans un Workspace. Ces paramètres s'appliquent à tous les SQL warehouses d'un workspace. De plus, le profil d'instance configuré peut être utilisé par les ressources de compute serverless dans le Workspace.
La modification de ces paramètres redémarre tous les SQL Warehouse en cours d'exécution.
Configurer les SQL warehouses et le compute Serverless pour utiliser un profil d'instance
Ce paramètre permet à tous les SQL Warehouses et compute serverless dans un Workspace d'accéder au stockage AWS via le profil d'instance.
Pour plus d'informations sur les profils d'instance, consultez Tutoriel : Configurer l'accès à S3 avec un profil d'instance.
Pour définir un profil d'instance à utiliser par tous les SQL Warehouse et compute Serverless dans votre Workspace :
- Cliquez sur votre nom d'utilisateur dans la barre supérieure du workspace et sélectionnez Paramètres dans le menu déroulant.
- Cliquez sur l'onglet Compute .
- Cliquez sur **Gérer** à côté de **SQL Warehouse et Serverless compute**.
- Dans la liste déroulante **Profil d'instance**, sélectionnez un profil d'instance.
- Cliquez sur Enregistrer les modifications .
Après avoir mis à jour ce paramètre, tous les entrepôts redémarrent. Si un Job utilise le compute Serverless, elle s'exécutera pendant 5 minutes avant de se terminer, puis de réessayer. Si vous utilisez le compute Serverless dans un notebook, vous pourrez continuer à exécuter des requêtes pendant 5 minutes. Après 5 minutes, toutes les requêtes en cours sembleront continuer à s'exécuter brièvement sans facturation, puis échoueront avec un message d'erreur vous invitant à start une nouvelle session et à réessayer.
- Si un utilisateur n'a pas l'autorisation d'utiliser le profil d'instance, tous les SQL warehouses que l'utilisateur crée ne pourront pas start.
- Si le profil d'instance n'est pas valide, tous les SQL warehouses deviendront non opérationnels.
Vous pouvez également configurer un profil d'instance à l'aide du fournisseur Databricks Terraform et de databricks_sql_global_config.
Configurer les propriétés d'accès aux données pour les SQL Warehouses
Ce paramètre n'est pris en charge que sur les SQL Warehouses et ne s'applique pas aux notebooks, Jobs ou pipelines Serverless du Workspace.
Les propriétés d'accès aux données aident à configurer la manière dont le warehouse interagit avec les sources de données et les couches d'authentification. Ceci est particulièrement utile pour les charges de travail qui utilisent un métastore externe, au lieu du Hive metastore hérité, vous permettant d'aligner la configuration d'accès aux données sur tous les systèmes.
Pour configurer tous les SQL warehouses avec des propriétés d'accès aux données :
-
Cliquez sur votre nom d'utilisateur dans la barre supérieure du workspace et sélectionnez Paramètres dans le menu déroulant.
-
Cliquez sur l'onglet Compute .
-
Cliquez sur **Gérer** à côté de **SQL Warehouses**.
-
Dans la zone de texte Configuration de l'accès aux données , spécifiez des paires clé-valeur contenant des propriétés de metastore.
Pour définir une propriété de configuration Spark sur la valeur d'un secret sans exposer la valeur du secret à Spark, définissez la valeur sur {{secrets/<secret-scope>/<secret-name>}}. Remplacez <secret-scope> par le Secret Scope et <secret-name> par le nom du secret. La valeur doit commencer par {{secrets/ and end with }}. Pour plus d'information sur cette syntaxe, consultez Gérer les secrets.
- Cliquez sur Enregistrer .
Vous pouvez également configurer les propriétés d'accès aux données à l'aide du fournisseur Databricks Terraform et de databricks_sql_global_config.
Propriétés prises en charge
-
Pour une entrée se terminant par
*, toutes les propriétés de ce préfixe sont prises en charge.Par exemple,
spark.sql.hive.metastore.*indique quespark.sql.hive.metastore.jarsetspark.sql.hive.metastore.versionsont pris en charge, ainsi que toute autre propriété start parspark.sql.hive.metastore. -
Pour les propriétés dont les valeurs contiennent des informations sensibles, vous pouvez stocker les informations sensibles dans un secret et définir la valeur de la propriété au nom du secret en utilisant la syntaxe suivante :
secrets/<secret-scope>/<secret-name>.
Les propriétés suivantes sont prises en charge pour les SQL warehouses :
spark.databricks.hive.metastore.glueCatalog.enabledspark.databricks.delta.catalog.update.enabled falsespark.sql.hive.metastore.*(spark.sql.hive.metastore.jarsetspark.sql.hive.metastore.jars.pathne sont pas pris en charge pour les Serverless SQL Warehouse.)spark.sql.warehouse.dirspark.hadoop.aws.regionspark.hadoop.datanucleus.*spark.hadoop.fs.*spark.hadoop.hive.*spark.hadoop.javax.jdo.option.*spark.hive.*spark.hadoop.aws.glue.*
Pour plus d’informations sur la façon de définir ces propriétés, consultez Hive metastore et data catalog AWS Glue.
Confirmez ou configurez un profil d'instance AWS à utiliser avec vos warehouses SQL Serverless.
Si vous utilisez déjà un profil d'instance avec Databricks SQL, le rôle associé au profil d'instance nécessite une déclaration de relation de confiance de Serverless compute Databricks afin que les entrepôts SQL Warehouse serverless puissent l'utiliser.
La plupart des profils d'instance ont déjà la déclaration de relation de confiance, en particulier si le profil d'instance a été créé via AWS Quickstart lors de la création du Workspace ou en suivant l'article Databricks pour créer le profil d'instance manuellement.
Cette section explique comment confirmer ou mettre à jour que le rôle associé au profil d'instance dispose de la déclaration de relation de confiance. Cela permet à votre Serverless SQL Warehouse d’utiliser le rôle pour accéder à vos compartiments S3.
Pour effectuer ces étapes, vous devez être un administrateur de Workspace Databricks pour confirmer le profil d'instance que votre Workspace utilise pour Databricks SQL. Vous devez également être un administrateur de compte AWS pour vérifier la politique de relation de confiance du rôle ou apporter les modifications nécessaires. Si vous n'êtes pas de ces deux types d'administrateurs, contactez les administrateurs appropriés de votre organisation pour effectuer ces étapes.
-
Dans la page des paramètres d'administration, cliquez sur la tab Compute , puis sur Gérer à côté de SQL warehouses.
-
Consultez la section Sécurité des données pour le champ Profil d'instance . Confirmez si votre workspace est configuré pour utiliser un profil d'instance AWS pour que Databricks SQL se connecte aux buckets S3 AWS autres que votre bucket racine.
- Si vous utilisez un profil d'instance, son nom est visible dans le champ Profil d'instance . Notez-le pour l’étape suivante.
- Si la valeur du champ est None , vous n'utilisez pas de profil d'instance pour accéder aux compartiments S3 autres que le compartiment racine de votre Workspace. La configuration est terminée.
-
Confirmez si le nom de votre profil d'instance correspond au nom du rôle associé.
-
Dans la console AWS, accédez à l'tab Rôles du service IAM. Il répertorie tous les rôles IAM de votre compte.
-
Cliquez sur le rôle dont le nom correspond au nom du profil d'instance dans les paramètres d'administration de Databricks SQL, dans la section Sécurité des données pour le champ Profil d'instance que vous avez trouvé plus tôt dans cette section.
-
Dans la zone de résumé, recherchez les champs ARN de rôle et ARNs de profil d'instance .
-
Vérifiez si la dernière partie de ces deux champs ont des noms correspondants après la dernière barre oblique. Par exemple :

-
-
Si vous avez déterminé à l'étape précédente que le nom du rôle (le texte après le dernier slash dans l'ARN du rôle) et le nom du profil d'instance (le texte après le dernier slash dans l'ARN du profil d'instance) ne correspondent pas, modifiez votre enregistrement de profil d'instance pour spécifier votre ARN de rôle IAM.
- Pour modifier vos profils d'instance, regardez sous le champ Profil d'instance et cliquez sur le bouton Configurer .
- Cliquez sur le nom de votre profil d'instance.
- Cliquez sur Modifier .
- Dans le champ facultatif **ARN du rôle**, collez l'ARN du rôle associé à votre profil d'instance. Il s'agit de l'étape clé qui permet à votre profil d'instance de fonctionner avec Databricks SQL Serverless, même si le nom du rôle ne correspond pas au nom du profil d'instance.
- Cliquez sur Enregistrer .
-
Dans la console AWS, veuillez confirmer ou modifier la relation de confiance.
-
Dans la console AWS, accédez à l'tab Rôles du service IAM, puis cliquez sur le rôle de profil d'instance que vous souhaitez modifier.
-
Cliquez sur la **tab Relations de confiance**.
-
Affichez la politique de confiance existante. Si la politique inclut déjà le bloc JSON ci-dessous, alors cette étape a été complétée précédemment et vous pouvez ignorer les instructions suivantes.
-
Cliquez sur Modifier la politique de confiance.
-
Dans le tableau
Statementexistant, ajoutez le bloc JSON suivant à la fin de la politique de confiance existante. Confirmez que vous ne remplacez pas la politique existante.JSON{
"Effect": "Allow",
"Principal": {
"AWS": ["arn:aws:iam::790110701330:role/serverless-customer-resource-role"]
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": [
"databricks-serverless-<YOUR-WORKSPACE-ID1>",
"databricks-serverless-<YOUR-WORKSPACE-ID2>"
]
}
}
}La seule chose que vous devez modifier dans l'instruction est l'ID du Workspace. Remplacez le
YOUR_WORKSPACE-IDpar un ou plusieurs ID de Workspace Databricks pour les Workspaces qui utiliseront ce rôle. Pour obtenir votre ID de Workspace pendant que vous utilisez votre Workspace, vérifiez l'URL. Par exemple, danshttps://<databricks-instance>/?o=6280049833385130, le nombre aprèso=est l'ID du Workspace.Le champ
Principal.AWSdoit avoir l'une des valeurs suivantes, en fonction de votre type de région AWS. Celles-ci font référence à un rôle de compute Serverless géré par Databricks :- Régions commerciales AWS :
arn:aws:iam::790110701330:role/serverless-customer-resource-role - AWS GovCloud (US) :
arn:aws-us-gov:iam::170655000336:role/serverless-customer-resource-role - AWS GovCloud (US-DoD) :
arn:aws-us-gov:iam::170644377855:role/serverless-customer-resource-role
- Régions commerciales AWS :
-
Cliquez sur Vérifier la politique .
-
Cliquez sur Enregistrer les modifications .
-
Si votre profil d'instance change ultérieurement, répétez ces étapes pour vérifier que la relation de confiance pour le rôle du profil d'instance contient l'instruction supplémentaire requise.
Dépannage
Si votre relation de confiance est mal configurée, les clusters échouent avec le message : « Request to create a cluster failed with an exception INVALID_PARAMETER_VALUE: IAM role <role-id> does not have the required trust relationship. »
Si vous obtenez cette erreur, il se peut que les ID de Workspace soient incorrects ou que la politique de confiance n’ait pas été correctement mise à jour sur le rôle approprié.
Suivez attentivement les étapes de Confirmer ou configurer un profil d'instance AWS à utiliser avec vos SQL Warehouses serverless pour mettre à jour la relation de confiance.
Configuration du métastore Glue pour les Serverless SQL Warehouse
Si vous devez spécifier un métastore AWS Glue ou ajouter des configurations de source de données supplémentaires, mettez à jour le champ **Configuration de l'accès aux données** dans la page des paramètres d'administration.
Les SQL Warehouses Serverless prennent en charge le métastore Databricks par default et AWS Glue en tant que métastore, mais ne prennent pas en charge les métastores Hive externes.