Se connecter à un emplacement externe Cloudflare R2

Cette page décrit comment se connecter à un emplacement externe Cloudflare R2. Une fois connecté, vous pouvez régir l’accès à ces objets R2 à l’aide du catalogue Unity.

Pour vous connecter avec succès à un chemin Cloudflare R2, vous avez besoin de deux objets sécurisables dans Unity Catalog. Le premier est une information d’identification de stockage, qui spécifie un jeton d’API R2 qui autorise l’accès à l’emplacement R2. Vous avez besoin de ces informations d’identification de stockage pour le deuxième objet requis : un emplacement externe, qui définit le chemin d’accès à votre emplacement de stockage R2 et les informations d’identification requises pour accéder à cet emplacement.

Requirements

  • Un espace de travail Databricks activé pour Unity Catalog.

  • Databricks Runtime 14.3 ou version ultérieure, ou SQL Warehouse 2024.15 ou version ultérieure.

    Si vous rencontrez le message d’erreur No FileSystem for scheme "r2”, votre calcul est probablement sur une version non prise en charge.

  • Un compte Cloudflare. Voir https://dash.cloudflare.com/sign-up.

  • Un rôle d’administrateur Cloudflare R2. Consultez la documentation sur les rôles Cloudflare.

  • les privilèges CREATE STORAGE CREDENTIAL et CREATE EXTERNAL LOCATION sur le metastore Unity Catalog associé à l’espace de travail. Les administrateurs de compte et les administrateurs de metastore disposent de ces privilèges par défaut.

Étape 1 : Configurer un compartiment R2

  1. Créez un compartiment Cloudflare R2.

    Vous pouvez utiliser le tableau de bord Cloudflare ou l’outil Cloudflare Wrangler.

    Consultez la documentation « Bien démarrer » Cloudflare R2 ou la documentation Wrangler.

  2. Créez un jeton d’API R2 et appliquez-le au compartiment.

    Consultez la documentation sur l’authentification de l’API Cloudflare R2.

    Définissez les propriétés de jeton suivantes :

    • Permissions : Lecture et Écriture d'Objet.

      Cette autorisation accorde l’accès en lecture et en écriture, ce qui est requis lorsque vous utilisez le stockage R2 comme cible de réplication, comme décrit dans Utiliser des réplicas Cloudflare R2 ou migrer le stockage vers R2.

      Si vous souhaitez appliquer un accès en lecture seule d’Azure Databricks vers le compartiment R2, vous pouvez créer un jeton qui accorde l’accès en lecture uniquement. Toutefois, cela peut être inutile, car vous pouvez marquer les informations d’identification de stockage en lecture seule et tout accès en écriture accordé par cette autorisation sera ignoré.

    • (Optional) TTL : durée de vie pendant laquelle vous souhaitez partager les données du compartiment avec les destinataires de données.

    • (Optional) Client IP Address Filtering : sélectionnez si vous souhaitez limiter l’accès réseau aux adresses IP de destinataire spécifiées. Si cette option est activée, vous devez spécifier les adresses IP de vos destinataires et vous devez autoriser la liste des adresses IP NAT du plan de contrôle Databricks pour la région de l’espace de travail.

    Consultez adresses IP et domaines des services et ressources d'Azure Databricks.

  3. Copiez les valeurs du jeton d’API R2 :

    • ID de clé d’accès
    • Clé d’accès secrète

    Important

    Les valeurs de jeton ne sont affichées qu’une seule fois.

  4. Dans la page d’accueil R2, accédez à Account details et copiez l’ID de compte R2.

Étape 2 : Créer les informations d’identification de stockage

  1. Dans Azure Databricks, connectez-vous à votre espace de travail.

  2. Cliquez sur l’icône Données.Catalogue.

  3. Cliquez sur le bouton Données >externes, accédez à l’onglet Informations d’identification, puis sélectionnez Créer des informations d’identification.

  4. Sélectionnez l'identifiant de stockage.

  5. Sélectionnez un Credential Type de Cloudflare API Token.

  6. Entrez un nom pour les informations d’identification et les valeurs suivantes que vous avez copiées lorsque vous avez configuré le compartiment R2 :

    • ID de compte
    • ID de clé d’accès
    • Clé d’accès secrète
  7. (Facultatif) Si vous souhaitez que les utilisateurs aient un accès en lecture seule aux emplacements externes qui utilisent cet identifiant de stockage, sélectionnez En lecture seule dans les Options avancées.

    Ne sélectionnez pas cette option si vous souhaitez utiliser les informations d’identification de stockage pour accéder au stockage R2 que vous utilisez en tant que cible de réplication, comme décrit dans Utiliser des réplicas Cloudflare R2 ou migrer le stockage vers R2.

    Pour plus d’informations, consultez Marquer les données d'identification de stockage comme en lecture seule.

  8. Cliquez sur Créer.

  9. Dans la boîte de dialogue Storage credential created, copiez l’External ID.

  10. (Facultatif) Lier l’identifiant de stockage à des espaces de travail spécifiques.

    Par défaut, les informations d’identification de stockage peuvent être utilisées par tous les utilisateurs privilégiés sur tous les espaces de travail attachés au métastore. Si vous souhaitez autoriser l’accès uniquement à partir d’espaces de travail spécifiques, accédez à l’onglet Espaces de travail et attribuez des espaces de travail. Consultez Affecter un identifiant de stockage à des espaces de travail spécifiques.

Étape 3 : Créer l’emplacement externe

Pour créer l’emplacement externe, utilisez l’Explorateur de catalogues si vous préférez utiliser une interface utilisateur graphique ou SQL si vous préférez la création par programmation.

Option 1 : Créer un emplacement externe à l’aide de l’Explorateur de catalogues

  1. Connectez-vous à un espace de travail associé au metastore.

  2. Dans la barre latérale, cliquez sur l’icône Données.Catalogue.

  3. Cliquez sur le bouton Données >externes, accédez à l’onglet Emplacements externes, puis cliquez sur Créer un emplacement externe.

  4. Dans la boîte de dialogue Créer un emplacement externe , cliquez sur Manuel, puis Suivant.

    Vous ne pouvez pas utiliser l’option de démarrage rapide AWS pour créer un emplacement externe pour la racine DBFS.

  5. Dans la boîte de dialogue Créer un emplacement externe manuellement , entrez un nom d’emplacement externe.

  6. Sous Type de stockage, sélectionnez R2.

  7. Sous URL, entrez le chemin d’accès. Par exemple : r2://my-bucket@my-account-id.r2.cloudflarestorage.com.

  8. Sous Informations d’identification de stockage, sélectionnez les informations d’identification de stockage qui accordent l’accès à l’emplacement externe.

  9. (Facultatif) Si vous souhaitez que les utilisateurs aient un accès en lecture seule à l’emplacement externe, cliquez sur Options avancées et sélectionnez Limiter pour une utilisation en lecture seule. Vous pouvez modifier ce paramètre ultérieurement. Pour plus d’informations, consultez Marquer un emplacement externe en lecture seule.

  10. (Facultatif) Si l’emplacement externe est destiné à la migration de charge de travail héritée, cliquez sur Options avancées et activez le mode de secours.

    Consultez Activer le mode de secours sur des emplacements externes.

  11. Cliquez sur Créer.

  12. (Facultatif) Liez l’emplacement externe à des espaces de travail spécifiques.

    Par défaut, tout utilisateur disposant des privilèges requis peut utiliser l’emplacement externe sur n’importe quel espace de travail associé au metastore. Si vous souhaitez autoriser l’accès uniquement à partir d’espaces de travail spécifiques, accédez à l’onglet Espaces de travail et attribuez des espaces de travail. Consultez Affecter un emplacement externe à des espaces de travail spécifiques.

  13. Accédez à l’onglet Autorisations pour accorder l’autorisation d’utiliser l’emplacement externe.

    Pour que quelqu’un puisse utiliser l’emplacement externe, vous devez accorder des autorisations :

    • Pour utiliser l’emplacement externe afin d’ajouter un emplacement de stockage managé au metastore, au catalogue ou au schéma, accordez le privilège CREATE MANAGED LOCATION.
    • Pour créer des tables ou des volumes externes, accordez les privilèges CREATE EXTERNAL TABLE ou CREATE EXTERNAL VOLUME.
    1. Cliquez sur Accorder.
    2. Dans la boîte de dialogue Accorder sur <external location>, sélectionnez les utilisateurs, les groupes ou les principaux de service dans le champ Principaux, puis sélectionnez le privilège que vous souhaitez accorder.
    3. Cliquez sur Accorder.

Option 2 : Créer un emplacement externe à l’aide de SQL

Pour créer un emplacement externe à l’aide de SQL, exécutez la commande suivante dans un notebook ou dans l’éditeur de requête SQL. Remplacez les valeurs d’espace réservé.

  • <location-name> : nom de l’emplacement externe. Si location_name contient des caractères spéciaux, tels que des traits d’union (-), il doit être entouré d’accents graves (` `). Voir Les noms.
  • <bucket-path> : chemin d’accès de votre locataire Cloud auquel cet emplacement externe accorde l’accès. Par exemple : r2://my-bucket@my-account-id.r2.cloudflarestorage.com.
  • <storage-credential-name> : nom des informations d’identification de stockage qui autorisent la lecture et l’écriture dans le compartiment. Si le nom des informations d’identification de stockage contient des caractères spéciaux, tels que des traits d’union (-), il doit être entouré d’accents graves (` `).
CREATE EXTERNAL LOCATION [IF NOT EXISTS] `<location-name>`
URL '<bucket-path>'
WITH ([STORAGE] CREDENTIAL `<storage-credential-name>`)
[COMMENT '<comment-string>'];

Si vous souhaitez limiter l’accès à un emplacement externe à des espaces de travail spécifiques dans votre compte, également appelé liaison d’espace de travail ou isolation d’emplacement externe, consultez Affecter un emplacement externe à des espaces de travail spécifiques.