Verbinding maken met een externe Cloudflare R2-locatie

Op deze pagina wordt beschreven hoe u verbinding maakt met een externe Cloudflare R2-locatie. Nadat u verbinding hebt gemaakt, kunt u de toegang tot deze R2-objecten beheren met behulp van Unity Catalog.

Als u verbinding wilt maken met een Cloudflare R2-pad, hebt u twee beveiligbare objecten voor Unity Catalog nodig. De eerste is een opslagreferentie, waarmee een R2 API-token wordt opgegeven waarmee toegang tot de R2-locatie wordt toegestaan. U hebt deze opslagreferentie nodig voor het tweede vereiste object: een externe locatie, die het pad naar uw R2-opslaglocatie definieert en de referenties die nodig zijn voor toegang tot die locatie.

Requirements

  • Databricks-werkruimte ingeschakeld voor Unity Catalog.

  • Databricks Runtime 14.3 of hoger, of SQL Warehouse 2024.15 of hoger.

    Als u het foutbericht No FileSystem for scheme "r2”krijgt, bevindt uw berekening zich waarschijnlijk op een niet-ondersteunde versie.

  • Een Cloudflare-account. Zie https://dash.cloudflare.com/sign-up.

  • Een Cloudflare R2-beheerdersrol. Raadpleeg de documentatie over Cloudflare-rollen.

  • CREATE STORAGE CREDENTIAL en CREATE EXTERNAL LOCATION machtigingen op de Unity Catalog-metastore die is gekoppeld aan de werkruimte. Accountbeheerders en metastore-beheerders hebben deze bevoegdheden standaard.

Stap 1: Een R2-bucket configureren

  1. Maak een Cloudflare R2-bucket.

    U kunt het Cloudflare-dashboard of het hulpprogramma Cloudflare Wrangler gebruiken.

    Zie de documentatie Cloudflare R2 'Aan de slag' of de Wrangler-documentatie.

  2. Maak een R2 API-token en pas dit toe op de bucket.

    Raadpleeg de documentatie voor Cloudflare R2-API-verificatie.

    Stel de volgende tokeneigenschappen in:

    • Machtigingen: Object lezen en schrijven.

      Deze machtiging verleent lees- en schrijftoegang, die vereist is wanneer u R2-opslag als replicatiedoel gebruikt, zoals beschreven in Cloudflare R2-replica's gebruiken of opslag migreren naar R2.

      Als u alleen-lezentoegang van Azure Databricks wilt afdwingen naar de R2-bucket, kunt u in plaats daarvan een token maken dat alleen-lezentoegang verleent. Dit kan echter onnodig zijn, omdat u de opslagreferentie kunt markeren als alleen-lezen en alle schrijftoegang die door deze machtiging wordt verleend, wordt genegeerd.

    • (optioneel) TTL: de duur dat u de bucketgegevens wilt delen met de gegevensontvangers.

    • (optioneel) filteren van IP-adressen van clients: selecteer deze optie als u de netwerktoegang tot opgegeven IP-adressen van geadresseerden wilt beperken. Als deze optie is ingeschakeld, moet u de IP-adressen van de geadresseerden opgeven en moet u het NAT-IP-adres van het Databricks-besturingsvlak voor de werkruimteregio toestaan.

    Zie IP-adressen en domeinen voor Azure Databricks-services en -assets.

  3. Kopieer de R2 API-tokenwaarden:

    • Toegangssleutel-id
    • Geheime toegangssleutel

    Important

    Tokenwaarden worden slechts eenmaal weergegeven.

  4. Ga op de startpagina van R2 naar Accountgegevens en kopieer de R2-account-id.

Stap 2: De opslagreferentie maken

  1. Meld u in Azure Databricks aan bij uw werkruimte.

  2. Klik op het pictogram Gegevens.Catalogus.

  3. Klik op de knop Externe gegevens > , ga naar het tabblad Referenties en selecteer Referentie maken.

  4. Selecteer opslagreferentie.

  5. Selecteer een referentietype van Cloudflare API-token.

  6. Voer een naam in voor de referentie en de volgende waarden die u hebt gekopieerd toen u de R2-bucket hebt geconfigureerd:

    • Account-id
    • Toegangssleutel-id
    • Geheime toegangssleutel
  7. (Optioneel) Als u wilt dat gebruikers alleen-lezentoegang hebben tot de externe locaties die gebruikmaken van deze opslagreferentie, selecteert u in geavanceerde optiesalleen-lezenselecteren.

    Selecteer deze optie niet als u de opslagreferentie wilt gebruiken voor toegang tot R2-opslag die u als replicatiedoel gebruikt, zoals beschreven in Cloudflare R2-replica's gebruiken of opslag migreren naar R2.

    Zie Een opslagreferentie markeren als alleen-lezen voor meer informatie.

  8. Klik op Create.

  9. In het dialoogvenster Opslagreferentie gemaakt, kopieer de Externe ID.

  10. (Optioneel) Koppel de opslagreferentie aan specifieke werkruimten.

    Standaard kan een opslagreferentie worden gebruikt door elke bevoegde gebruiker in elke werkruimte die is gekoppeld aan de metastore. Als u alleen toegang vanuit specifieke werkruimten wilt toestaan, gaat u naar het tabblad Werkruimten en wijst u werkruimten toe. Zie Een opslagreferentie toewijzen aan specifieke werkruimten.

Stap 3: De externe locatie maken

Als u de externe locatie wilt maken, gebruikt u Catalog Explorer als u liever een grafische gebruikersinterface of SQL gebruikt als u liever programmatisch maakt.

Optie 1: Een externe locatie maken met Behulp van Catalog Explorer

  1. Meld u aan bij een werkruimte die is gekoppeld aan de metastore.

  2. Klik in de zijbalk op het pictogram Gegevens.Catalogus.

  3. Klik op de knop Externe gegevens > , ga naar het tabblad Externe locaties en klik op Externe locatie maken.

  4. Klik in het dialoogvenster Een nieuwe externe locatie maken op Handmatig en vervolgens op Volgende.

    U kunt de optie AWS-quickstart niet gebruiken om een externe locatie te maken voor de DBFS-hoofdmap.

  5. Voer in het dialoogvenster Handmatig een nieuwe externe locatie maken een externe locatienaam in.

  6. Selecteer R2 onder Opslagtype.

  7. Voer onder URL het pad in. Bijvoorbeeld: r2://my-bucket@my-account-id.r2.cloudflarestorage.com.

  8. Selecteer onder Opslagreferentie de opslagreferentie die toegang verleent tot de externe locatie.

  9. (Optioneel) Als u wilt dat gebruikers alleen-lezentoegang hebben tot de externe locatie, klikt u op Geavanceerde opties en selecteert u Limiet voor alleen-lezengebruik. U kunt deze instelling later wijzigen. Zie Een externe locatie markeren als alleen-lezen voor meer informatie.

  10. (Optioneel) Als de externe locatie is bedoeld voor verouderde workloadmigratie, klikt u op Geavanceerde opties en schakelt u de terugvalmodus in.

    Zie Terugvalmodus inschakelen op externe locaties.

  11. Klik op Create.

  12. (Optioneel) Koppel de externe locatie aan specifieke werkruimten.

    Standaard kan elke bevoegde gebruiker de externe locatie gebruiken op elke werkruimte die is gekoppeld aan de metastore. Als u alleen toegang vanuit specifieke werkruimten wilt toestaan, gaat u naar het tabblad Werkruimten en wijst u werkruimten toe. Zie Een externe locatie toewijzen aan specifieke werkruimten.

  13. Ga naar het tabblad Machtigingen om toestemming te verlenen voor het gebruik van de externe locatie.

    Als u de externe locatie wilt gebruiken, moet u machtigingen verlenen:

    • Als u de externe locatie wilt gebruiken om een beheerde opslaglocatie toe te voegen aan metastore, catalogus of schema, verleent u de CREATE MANAGED LOCATION bevoegdheid.
    • Als u externe tabellen of volumes wilt maken, moet u CREATE EXTERNAL TABLE of CREATE EXTERNAL VOLUME verlenen.
    1. Klik op Toestaan.
    2. In het dialoogvenster Verlenen<external location> selecteert u in het veld Principals de gebruikers, groepen of service-principals en kiest u de bevoegdheid die u wilt verlenen.
    3. Klik op Toestaan.

Optie 2: Een externe locatie maken met BEHULP van SQL

Als u een externe locatie wilt maken met behulp van SQL, voert u de volgende opdracht uit in een notebook of de SQL-query-editor. Vervang de waarden van de tijdelijke aanduidingen.

  • <location-name>: Een naam voor de externe locatie. Als location_name speciale tekens bevat, zoals afbreekstreepjes (-), moeten ze worden omgeven door backticks (` `). Zie Namen.
  • <bucket-path>: het pad in uw cloudtenant waartoe deze externe locatie toegang verleent. Bijvoorbeeld: r2://my-bucket@my-account-id.r2.cloudflarestorage.com.
  • <storage-credential-name>: De naam van de opslagreferentie die het lezen van en schrijven naar de bucket autoriseert. Als de naam van de opslagreferentie speciale tekens bevat, zoals afbreekstreepjes (-), moet deze worden omgeven door backticks (` `).
CREATE EXTERNAL LOCATION [IF NOT EXISTS] `<location-name>`
URL '<bucket-path>'
WITH ([STORAGE] CREDENTIAL `<storage-credential-name>`)
[COMMENT '<comment-string>'];

Als u de toegang tot externe locaties wilt beperken tot specifieke werkruimten in uw account, ook wel werkruimtebinding of isolatie van externe locaties genoemd, raadpleegt u Een externe locatie toewijzen aan specifieke werkruimten.