Migration de l’interface CLI Databricks
Cet article explique comment migrer de Databricks CLI version 0.18 ou antérieure vers Databricks CLI version 0.205 ou ultérieure. Les versions 0.205 et ultérieures de l’interface CLI Databricks sont en préversion publique.
Par souci de concision, cet article fait référence à Databricks CLI versions 0.18 et antérieures en tant qu’interface CLI « héritée », et à Databricks CLI versions 0.205 et ultérieures en tant que « nouvelle » CLI.
Pour plus d'informations sur les CLIs hérités et nouveaux, consultez :
- Databricks CLI (hérité) pour l’interface CLI hérité.
- Présentation de l’interface CLI Databricks pour la nouvelle interface CLI.
Désinstaller l’interface CLI héritée
Si vous avez installé l’interface CLI héritée et que vous souhaitez la désinstaller, utilisez pip
(ou pip3
, selon votre version de Python) pour exécuter la uninstall
commande, comme suit :
pip uninstall databricks-cli
Installer la nouvelle interface CLI
Pour savoir comment installer la nouvelle interface CLI, consultez Installer ou mettre à jour l’interface CLI Databricks.
Vérifier l’installation de l’interface CLI
Si vous n’êtes pas sûr d’utiliser la nouvelle interface CLI, suivez les instructions de cette section pour vérifier et ajuster si nécessaire. Avant de suivre ces instructions, veillez à quitter les environnements virtuels Python, conda
les environnements ou les environnements similaires.
Pour case activée la version de votre installation par défaut de l’interface CLI, exécutez la commande suivante :
databricks -v
Si le numéro de version ne correspond pas à ce que vous attendez, effectuez l’une des opérations suivantes :
- Si vous souhaitez utiliser une seule version de l’interface CLI : désinstallez toutes les versions précédentes de l’interface CLI que vous ne souhaitez plus utiliser. Vous devrez peut-être mettre à jour votre système d’exploitation
PATH
afin que le chemin d’accès à la version restante de l’interface CLI que vous souhaitez utiliser soit répertorié. - Si vous souhaitez continuer à utiliser plusieurs versions de l’interface CLI : ajoutez le chemin d’accès complet à la version de l’interface CLI que vous souhaitez utiliser pour chaque appel à l’interface CLI.
- Si vous souhaitez continuer à utiliser plusieurs versions de l’interface CLI, mais que vous ne souhaitez pas continuer à précéder le chemin d’accès complet à la version de l’interface CLI que vous utilisez le plus souvent : assurez-vous que le chemin d’accès complet à cette version est répertorié en premier dans le système d’exploitation de votre système d’exploitation
PATH
. Notez que vous devez toujours ajouter le chemin d’accès complet aux versions de l’interface CLI qui ne sont pas répertoriées en premier dans le système d’exploitation de votre système d’exploitationPATH
.
Pour mettre à jour le système d’exploitation PATH
, procédez comme suit :
MacOS ou Linux
Répertoriez les chemins d’accès où
databricks
est installé en exécutant l’une des commandes suivantes :which -a databricks # Or: where databricks
Obtenez le chemin d’accès à l’installation que vous souhaitez utiliser sans reporter le chemin d’accès complet à chaque appel à l’interface CLI. Si vous ne savez pas de quel chemin il s’agit, exécutez le chemin d’accès complet à chaque emplacement, suivi de
-v
, par exemple :/usr/local/bin/databricks -v
Pour placer le chemin d’accès à l’installation que vous souhaitez utiliser en premier dans votre
PATH
, exécutez la commande suivante, en remplaçant par/usr/local/bin
le chemin que vous souhaitez utiliser. N’ajoutez pasdatabricks
à la fin de ce chemin d’accès. Par exemple :export PATH="/usr/local/bin:$PATH"
Pour vérifier que le
PATH
a été correctement défini pour la session de terminal actuelle, exécutezdatabricks
suivi de-v
et examiner le numéro de version :databricks -v
Pour que le
PATH
paramètre soit défini de cette façon chaque fois que vous redémarrez votre terminal, ajoutez la commande de l’étape 3 à votre fichier d’initialisation de l’interpréteur de commandes. Par exemple, pour Zshell, ce fichier se trouve généralement dans~/.zshrc
. Pour Bash, ce fichier se trouve généralement dans~/.bashrc
. Pour les autres interpréteurs de commandes, consultez la documentation de votre fournisseur d’interpréteur de commandes.Après avoir mis à jour votre fichier d’initialisation de l’interpréteur de commandes, vous devez redémarrer votre terminal pour appliquer la valeur mise à jour
PATH
.
Windows
Obtenez le chemin d’accès à l’installation
databricks
que vous souhaitez utiliser sans reporter le chemin d’accès complet à chaque appel à l’interface CLI.Cliquez sur Ouvrir l'emplacement du fichier.
Notez le chemin d'accès à
databricks
, par exempleC:\Windows
.Dans le menu Démarrer, recherchez Variables d’environnement.
Cliquez sur Modifier les variables d’environnement pour votre compte.
Sélectionnez la variable Chemin d’accès dans la section Variables utilisateur pour
<username>
.Cliquez sur Modifier.
Cliquez sur Nouveau.
Entrez le chemin que vous souhaitez ajouter, sans
databricks.exe
(par exempleC:\Windows
).Utilisez le bouton Monter pour déplacer le chemin que vous venez d’ajouter au début de la liste.
Cliquez sur OK.
Pour vérifier que le
PATH
a été correctement défini, ouvrez une nouvelle invite de commandes, exécutezdatabricks
suivi de-v
et examinez le numéro de version :databricks -v
Utiliser des types d’authentification supplémentaires
L’interface CLI héritée et la nouvelle interface CLI prennent en charge l’authentification par jeton d’accès personnel Azure Databricks. Toutefois, Databricks vous recommande d’utiliser d’autres types d’authentification Azure Databricks si possible, que seule la nouvelle interface CLI prend en charge.
Si vous devez utiliser l’authentification par jeton d’accès personnel Azure Databricks, Databricks vous recommande d’en utiliser un associé à un principal de service au lieu d’un compte Azure Databricks ou d’un utilisateur d’espace de travail. Si vous souhaitez en savoir plus, veuillez consulter la rubrique Gérer les principaux de service.
La nouvelle interface CLI prend en charge les jetons Microsoft Entra ID en plus des jetons d’accès personnels Azure Databricks. Ces jetons supplémentaires sont plus sécurisés, car ils expirent généralement dans une heure, tandis que les jetons d’accès personnels Azure Databricks peuvent être valides d’un jour à indéfiniment. Cela est particulièrement important si un jeton est accidentellement archivé dans des systèmes de contrôle de version accessibles par d’autres utilisateurs. En outre, la nouvelle interface CLI peut actualiser automatiquement ces jetons supplémentaires lorsqu’ils expirent, tandis que l’actualisation des jetons d’accès personnel Azure Databricks est un processus manuel ou peut être difficile à automatiser.
Pour plus d’informations, consultez Authentification pour l’interface CLI Databricks.
Comparaisons de groupes de commandes et de commandes
Le tableau suivant répertorie les groupes de commandes CLI hérités et leurs nouveaux équivalents de groupe de commandes CLI. Lorsqu’il existe des différences significatives entre les CLIs, des tables supplémentaires répertorient les commandes ou options CLI héritées et leurs nouvelles commandes CLI ou leurs équivalents d’option.
Groupes de commandes
Groupe de commandes hérité | Nouveau groupe de commandes |
---|---|
cluster-policies |
cluster-policies . Tous les noms de commande sont identiques. |
clusters |
clusters . Tous les noms de commande sont identiques. |
configure |
configure . Consultez configurer les options. |
fs |
fs . Consultez commandes fs. |
groups |
groups . Consultez commandes de groupes. |
instance-pools |
instance-pools . Tous les noms de commande sont identiques. |
jobs |
jobs . Tous les noms de commande sont identiques. |
libraries |
libraries . Tous les noms de commande sont identiques, à l’exception de list . La commandelist n’est plus disponible ; utilisez les commandes all-cluster-statuses oucluster-status à la place. |
pipelines |
pipelines . Consultez commandes de pipelines. |
repos |
repos . Tous les noms de commande sont identiques. |
runs |
jobs . Consultez exécutions de commandes. |
secrets |
secrets . Consultez commandes secrets. |
stack |
Non disponible dans la nouvelle interface CLI. Databricks vous recommande d’utiliser le fournisseur Databricks Terraform à la place. |
tokens |
tokens . Consultez commandes de jetons. |
unity-catalog |
Divers. Consultez groupes de commandes unity-catalog. |
workspace |
workspace . Consultez commandes d’espace de travail. |
configure
options
Option héritée | Nouvelle option |
---|---|
-o |
L’interface CLI héritée utilise -o pour l’authentification OAuth. La nouvelle interface CLI est réutilisée -o pour spécifier si la sortie CLI est au format texte ou JSON. Non applicable à Azure Databricks. |
--oauth |
Non applicable à Azure Databricks. |
-s ou --scope |
Non applicable à Azure Databricks. |
-t ou --token |
-t ou --token (identique) |
-f ou --token-file |
Non disponible dans la nouvelle interface CLI. |
--host |
--host (Identique) |
--aad-token |
Utilisez --host et spécifiez un jeton Microsoft Entra ID lorsque vous y êtes invité au lieu d’un jeton d’accès personnel Azure Databricks. |
--insecure |
Non disponible dans la nouvelle interface CLI. |
--jobs-api-version |
Non disponible dans la nouvelle interface CLI. La nouvelle interface CLI utilise l’API Travaux 2.1 uniquement. Pour appeler l’API Travaux 2.0 héritée, utilisez l’interface CLI héritée et consultez l’interface CLI des travaux (héritée). |
--debug |
Pour le débogage et la journalisation dans la nouvelle interface CLI, consultez Mode débogage. |
--profile |
--profile (identique) ou -p |
-h ou --help |
-h ou --help (identique) |
Commandes fs
Toutes les commandes fs
de l’interface CLI héritée sont les mêmes dans la nouvelle interface CLI, à l’exception de fs mv
laquelle n’est pas disponible dans la nouvelle interface CLI.
Commande héritée | Nouvelle commande |
---|---|
fs cat |
fs cat (Identique) |
fs cp |
fs cp (Identique) |
fs ls |
fs ls (Identique) |
fs mkdirs |
fs mkdir |
fs mv |
Non disponible dans la nouvelle interface CLI. |
fs rm |
fs rm (Identique) |
Commandes groups
Commande héritée | Nouvelle commande |
---|---|
groups add-member |
groups patch |
groups create |
groups create (Identique) |
groups delete |
groups delete (Identique) |
groups list |
groups list (Identique) |
groups list-members |
groups list |
groups list-parents |
groups list |
groups remove-member |
groups patch |
Commandes pipelines
Commande héritée | Nouvelle commande |
---|---|
pipelines create |
pipelines create (Identique) |
pipelines delete |
pipelines delete (Identique) |
pipelines deploy |
pipelines create |
pipelines edit |
pipelines update |
pipelines get |
pipelines get (Identique) |
pipelines list |
pipelines list-pipeline-events ou pipelines list-pipelines ou pipelines list-updates |
pipelines reset |
pipelines reset (Identique) |
pipelines start |
pipelines start update |
pipelines stop |
pipelines stop (Identique) |
pipelines update |
pipelines update (Identique) |
Commandes runs
Commande héritée | Nouvelle commande |
---|---|
runs cancel |
jobs cancel-run |
runs get |
jobs get-run |
runs get-output |
jobs get-run-output |
runs list |
jobs list-runs |
runs submit |
jobs submit |
Commandes secrets
Commande héritée | Nouvelle commande |
---|---|
secrets create-scope |
secrets create-scope (Identique) |
secrets delete |
secrets delete-secret |
secrets delete-acl |
secrets delete-acl (Identique) |
secrets delete-scope |
secrets delete-scope (Identique) |
secrets get-acl |
secrets get-acl (Identique) |
secrets list |
secrets list-secrets |
secrets list-acls |
secrets list-acls (Identique) |
secrets list-scopes |
secrets list-scopes (Identique) |
secrets put |
secrets put-secret |
secrets put-acl |
secrets put-acl (Identique) |
secrets write |
secrets put-secret |
secrets write-acl |
secrets put-acl |
Commandes tokens
Commande héritée | Nouvelle commande |
---|---|
tokens create |
tokens create (Identique) |
tokens list |
tokens list (Identique) |
tokens revoke |
tokens delete |
Groupes de commandes unity-catalog
unity-catalog <command>
dans l’interface CLI héritée devient juste <command>
dans la nouvelle interface CLI.
Groupe de commandes hérité | Nouveau groupe de commandes |
---|---|
unity-catalog catalogs |
catalogs (identique mais annulerunity-catalog ) |
unity-catalog external-locations |
external-locations (identique mais annulerunity-catalog ) |
unity-catalog lineage |
Non disponible dans la nouvelle interface CLI. Consultez Récupérer la traçabilité à l’aide de l’API REST de traçabilité des données. |
unity-catalog metastores |
metastores (identique mais annulerunity-catalog ) |
unity-catalog permissions |
grants |
unity-catalog providers |
providers (identique mais annulerunity-catalog ) |
unity-catalog recipients |
recipients (identique mais annulerunity-catalog ) |
unity-catalog schemas |
schemas (identique mais annulerunity-catalog ) |
unity-catalog shares |
shares (identique mais annulerunity-catalog ) |
unity-catalog storage-credentials |
storage-credentials (identique mais annulerunity-catalog ) |
unity-catalog tables |
tables (identique mais annulerunity-catalog ) |
Commandes workspace
Commande héritée | Nouvelle commande |
---|---|
workspace delete |
workspace delete (Identique) |
workspace export |
workspace export (Identique) |
workspace export-dir |
workspace export |
workspace import |
workspace import (Identique) |
workspace import-dir |
workspace import |
workspace list |
workspace list (Identique) |
workspace ls |
workspace list |
workspace mkdirs |
workspace mkdirs (Identique) |
workspace rm |
workspace delete |
Arguments par défaut et positionnels
La plupart des nouvelles commandes CLI ont au moins un argument par défaut qui n’a pas d’option d’accompagnement. Certaines nouvelles commandes CLI ont au moins deux arguments positionnels qui doivent être spécifiés dans un ordre particulier et qui n’ont pas d’options d’accompagnement. Cela diffère de l’interface CLI héritée, où la plupart des commandes nécessitent que des options soient spécifiées pour tous les arguments. Par exemple, la nouvelle commande CLI clusters get
prend un ID de cluster comme argument par défaut. Toutefois, la commande de clusers get
l’interface CLI héritée vous oblige à spécifier une --cluster-id
option avec l’ID de cluster. Par exemple :
Pour l’interface CLI héritée :
# This works with the legacy CLI.
databricks clusters get --cluster-id 1234-567890-a1b23c4d
# This does **not** work with the legacy CLI - "Error:
# Missing None. One of ['cluster-id', 'cluster-name'] must be provided."
databricks clusters get 1234-567890-a1b23c4d
Pour la nouvelle interface CLI :
# This works with the new CLI.
databricks clusters get 1234-567890-a1b23c4d
# This does **not** work with the new CLI - "Error: unknown flag: --cluster-id"
databricks clusters get --cluster-id 1234-567890-a1b23c4d
Autre exemple, la nouvelle commande CLIgrants get
prend deux arguments par défaut : le type sécurisable suivi du nom complet de la sécurisable. Toutefois, la commande de l’interface CLI héritée unity-catalog permissions get
vous oblige à spécifier une --<securable-type>
option avec l’ID de cluster. Par exemple :
Pour l’interface CLI héritée :
databricks unity-catalog permissions get --schema main.default
Pour la nouvelle interface CLI :
# This works with the new CLI.
databricks grants get schema main.default
# This does **not** work with the new CLI - "Error: unknown flag: --schema"
databricks grants get --schema main.default
Mode débogage
L’interface CLI héritée fournit une option permettant d’afficher --debug
la trace complète de la pile en cas d’erreur. Pour la nouvelle interface CLI, l’option --debug
n’est pas reconnue. Utilisez plutôt les options suivantes :
- Utilisez
--log-file <path>
pour écrire des informations de journal dans le fichier spécifié dans<path>
. Si cette option n’est pas fournie, les informations de journal sont transmises à stderr. La spécification--log-file
sans spécifier également--log-level
les résultats dans aucune information de journal n’est écrite dans le fichier. - Utilisez
--log-format <type>
pour spécifier le format des informations journalisées.<type>
peut êtretext
(la valeur par défaut, si elle n’est pas spécifiée) oujson
. - Utilisez
--log-level <format>
pour spécifier le niveau d’informations journalisées. Les valeurs autorisées sontdisabled
(la valeur par défaut, si elle n’est pas spécifiée),trace
,debug
,info
,warn
eterror
.
Pour l’interface CLI héritée, l’exemple suivant montre la trace complète de la pile en cas d’erreur :
databricks fs ls / --debug
# Output:
#
# HTTP debugging enabled
# NoneType: None
# Error: The path / must start with "dbfs:/"
Pour la nouvelle interface CLI, l’exemple suivant consigne la trace complète de la pile dans un fichier nommé new-cli-errors.log
dans le répertoire de travail actuel. La trace de pile est écrite dans le fichier au format JSON :
databricks fs ls / --log-file new-cli-errors.log --log-format json --log-level trace
# Output:
#
# Error: expected dbfs path (with the dbfs:/ prefix): /
#
# (The full stack trace is also written to the new-cli-errors.log file.)
Questions courantes
Cette section répertorie les questions courantes sur la migration de l’ancien vers la nouvelle interface CLI.
Qu’arrive-t-il à l’interface CLI héritée ?
L’interface CLI héritée est toujours disponible, mais ne reçoit aucune mise à jour non critique. La documentation de l’interface CLI héritée reflète cela. Databricks recommande aux utilisateurs de migrer vers la nouvelle interface CLI dès que possible.
L’interface CLI héritée a toujours été dans un état expérimental avec une clause de non-responsabilité indiquant que Databricks ne prévoit aucune nouvelle fonctionnalité pour l’interface CLI héritée, et que l’interface CLI héritée n’est pas prise en charge via les canaux de support Databricks.
Quand l’interface CLI héritée sera-t-elle dépréciée ?
L’interface CLI héritée a toujours été dans un état expérimental avec une clause de non-responsabilité indiquant que Databricks ne prévoit aucune nouvelle fonctionnalité pour l’interface CLI héritée, et que l’interface CLI héritée n’est pas prise en charge via les canaux de support Databricks.
Databricks n’a pas établi de date ou de chronologie pour la dépréciation de l’interface CLI héritée. Toutefois, Databricks recommande aux utilisateurs de migrer vers la nouvelle interface CLI dès que possible.
Quand la nouvelle interface CLI sera-t-elle publiée en disponibilité générale (GA) ?
Aucune date de publication ou chronologie de publication de la nouvelle interface CLI en disponibilité générale n’a été établie. Cela dépend des commentaires que Databricks reçoit des utilisateurs pendant la préversion publique.
Quelles sont les principales différences entre les CLI hérités et les nouveaux CLIs ?
- L’interface CLI héritée a été publiée en tant que package Python. La nouvelle interface CLI est publiée en tant qu’exécutable autonome et n’a pas besoin d’installer de dépendances au runtime.
- La nouvelle interface CLI a une couverture complète des API REST Databricks. Ce n’est pas le cas de l’interface CLI héritée.
- La nouvelle interface CLI est disponible en préversion publique. L’interface CLI héritée se trouve à l’état expérimental.
La nouvelle interface CLI a-t-elle une parité de fonctionnalités complète avec l’interface CLI héritée ?
La nouvelle interface CLI couvre presque toutes les commandes de l’interface CLI héritée. Toutefois, le groupe de commandes de l’interface CLI héritée est stacks
particulièrement absent de la nouvelle interface CLI. En outre, quelques groupes de commandes CLI hérités tels que unity-catalog
et runs
ont été refactorisé en nouveaux groupes de commandes dans la nouvelle interface CLI. Pour obtenir des conseils sur la migration, consultez les informations fournies plus haut dans cet article.
Comment faire migrer de l’hérité vers la nouvelle interface CLI ?
Pour obtenir des conseils sur la migration, consultez les informations fournies plus haut dans cet article. Notez que la nouvelle interface CLI n’est pas un remplacement de l’interface CLI héritée et nécessite une configuration pour passer de l’interface héritée à la nouvelle interface CLI.
Les installations des CLI hérités et nouvelles peuvent-elles exister sur la même machine ?
Oui. Les installations des CLI hérités et nouvelles peuvent exister sur la même machine, mais elles doivent se trouver dans des répertoires différents. Étant donné que les exécutables sont tous deux nommés databricks
, vous devez contrôler l’exécutable qui est exécuté par défaut en configurant le fichier de votre ordinateur PATH
. Si vous souhaitez exécuter la nouvelle interface CLI, mais que vous exécutez accidentellement l’interface CLI héritée à la place, par défaut, l’interface CLI héritée exécute la nouvelle interface CLI avec les mêmes arguments et affiche le message d’avertissement suivant :
Databricks CLI <new-version-number> found at <new-path>
Your current PATH prefers running CLI <old-version-number> at <old-path>
Because both are installed and available in PATH,
I assume you are trying to run the newer version.
If you want to disable this behavior you can set DATABRICKS_CLI_DO_NOT_EXECUTE_NEWER_VERSION=1.
Executing CLI <new-version-number>...
-------------------------------------
Databricks CLI <new-version-number>
Comme indiqué dans le message d’avertissement précédent, vous pouvez définir la DATABRICKS_CLI_DO_NOT_EXECUTE_NEWER_VERSION
variable d’environnement1
sur pour désactiver ce comportement et exécuter l’interface CLI héritée à la place.
Obtenir de l’aide
Pour obtenir de l’aide sur la migration de l’interface CLI héritée vers la nouvelle interface CLI, consultez les ressources suivantes :