> ## Documentation Index
> Fetch the complete documentation index at: https://docs.metronome.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Databricks

## Prérequis

* Par défaut, cette intégration Databricks utilise les fonctionnalités de gouvernance des données d'Unity Catalog. Unity Catalog devra être activé sur votre Databricks Workspace.

## Étape 1 : créer un SQL warehouse

Créez un nouveau SQL warehouse pour l'écriture des données.

1. Connectez-vous au compte Databricks.
2. Dans le volet de navigation, cliquez sur le menu déroulant du workspace et sélectionnez **SQL**.
3. Dans la console SQL, dans le volet de navigation SQL, cliquez sur **Create** puis sur **SQL warehouse**.

![](https://storage.googleapis.com/prequel_docs/images/databricks-sql-endpoint.png "sql_endpoint.png")

4. Dans le menu New SQL Warehouse, choisissez un **nom** et **configurez les options** pour le nouveau SQL warehouse. Sous « Advanced options », activez « Unity Catalog » en position **On**, sélectionnez le canal **Preview** et cliquez sur **Create**.

![](https://storage.googleapis.com/prequel_docs/images/databricks-new-sql-endpoint.png "new_sql_endpoint.png")

## Étape 2 : configurer l'accès

Collectez les informations de connexion et créez un jeton d'accès pour le service de transfert de données.

1. Dans la console **SQL Warehouses**, sélectionnez le SQL warehouse que vous avez créé à l'**Étape 1**.

![](https://storage.googleapis.com/prequel_docs/images/databricks-endpoints-console.png "endpoints_console.png")

2. Cliquez sur l'onglet **Connection Details**, et notez le **Server hostname**, le **Port** et le **HTTP path**.

![](https://storage.googleapis.com/prequel_docs/images/databricks-server-port-path.png "server_port_path.png")

3. Cliquez sur le lien pour créer un **personal access token**.

![](https://storage.googleapis.com/prequel_docs/images/databricks-create-personal-access-token.png "create_a_personal_access_token.png")

4. Cliquez sur **Generate New Token**.

![](https://storage.googleapis.com/prequel_docs/images/databricks-generate-new-token.png "create_new_token.png")

5. Nommez le jeton avec un commentaire descriptif et attribuez la durée de vie du jeton. Une durée de vie plus longue vous évitera d'avoir à mettre à jour le jeton aussi souvent. Cliquez sur **Generate**.
6. Dans la fenêtre contextuelle qui suit, **copiez le jeton** et enregistrez-le en lieu sûr.

> 🚧 Utiliser un service principal et un jeton au lieu de votre jeton d'accès personnel
>
> Vous pouvez préférer créer un **service principal** à utiliser pour l'authentification plutôt qu'un jeton d'accès personnel. Pour ce faire, suivez les étapes suivantes pour créer un service principal et générer un jeton d'accès.
>
> 1. Dans votre Databricks workspace, cliquez sur votre nom d'utilisateur en haut à droite, cliquez sur **Admin Settings**, **Identity and access**, et à côté des options **Service Principals**, cliquez sur **Manage**.
> 2. Cliquez sur le bouton **Add service principal**, cliquez sur **Add new** dans la fenêtre modale, saisissez un nom d'affichage et cliquez sur **Add**.
> 3. Cliquez sur le service principal nouvellement créé, et sous **Entitlements**, sélectionnez **Databricks SQL Access** et **Workspace Access**. Cliquez sur **Update** et notez l'**Application ID** de votre service principal nouvellement créé.
> 4. De retour dans le menu **Admin Settings**, cliquez sur la section **Advanced** (sous le menu **Workspace admin**). Dans la section **Access Control**, à côté de la ligne **Personal Access Tokens**, cliquez sur **Permission Settings**. Recherchez et sélectionnez le **service principal** que vous avez créé, sélectionnez l'autorisation **Can use**, cliquez sur **Add**, puis sur **Save**.
> 5. Revenez à la section **SQL Warehouses** de votre workspace, cliquez sur l'onglet **SQL Warehouses**, et sélectionnez le **SQL Warehouse** que vous avez créé à l'**Étape 1**. Cliquez sur **Permissions** en haut à droite, recherchez et sélectionnez le **service principal** que vous avez créé, sélectionnez l'autorisation **Can use**, et cliquez sur **Add**.
> 6. Utilisez votre terminal pour générer un **jeton d'accès du service principal** à l'aide de votre jeton d'accès personnel généré ci-dessus. Enregistrez la **valeur du jeton**. Ce jeton peut maintenant être utilisé comme jeton d'accès pour la connexion.
>
> ```curl cURL request theme={null}
> curl --request POST "https://<databricks-account-id>.cloud.databricks.com/api/2.0/token-management/on-behalf-of/tokens" \
> --header "Authorization: Bearer <personal-access-token>" \
> --data '{
>   "application_id": "<application-id-of-service-principal>",
>   "lifetime_seconds": <token-lifetime-in-seconds-eg-31536000>,
>   "comment": "<some-discription-of-this-token>"
> }'
> ```

7. Dans l'interface Databricks, sélectionnez l'onglet **Catalog** et sélectionnez le **catalogue** cible. Dans l'onglet **Permissions** du catalogue, cliquez sur **Grant**. Dans la fenêtre modale qui suit, sélectionnez le **principal** pour lequel vous avez généré le jeton d'accès, sélectionnez `USE CATALOG` et cliquez sur **Grant**.
8. Sous le **catalogue** cible, sélectionnez le **schéma** cible (par exemple, `main.default`, ou créez un nouveau schéma cible). Dans l'onglet **Permissions** du schéma, cliquez sur **Grant**. Dans la fenêtre modale qui suit, sélectionnez le **principal** pour lequel vous avez généré le jeton d'accès, et sélectionnez soit `ALL PRIVILEGES` soit les 9 privilèges suivants, puis cliquez sur **Grant** :

* `USE SCHEMA`
* `APPLY TAG`
* `MODIFY`
* `READ VOLUME`
* `SELECT`
* `WRITE VOLUME`
* `CREATE MATERIALIZED VIEW`
* `CREATE TABLE`
* `CREATE VOLUME`

## Étape 3 : ajouter votre destination

1. Partagez de manière sécurisée votre **server hostname**, **HTTP path**, **catalogue**, le **nom de schéma** choisi et votre **jeton d'accès** avec nous pour finaliser la connexion.
