Delen via


Federatieve query's uitvoeren op Teradata

Belangrijk

Deze functie bevindt zich in openbare preview-versie.

In dit artikel wordt beschreven hoe u Lakehouse Federation instelt om federatieve query's uit te voeren op Teradata-gegevens die niet worden beheerd door Azure Databricks. Voor meer informatie over Lakehouse Federation, zie Wat is Lakehouse Federation?.

Als u verbinding wilt maken met uw Teradata-database met behulp van Lakehouse Federation, moet u het volgende maken in uw Azure Databricks Unity Catalog-metastore:

  • Een verbinding met uw Teradata-database.
  • Een buitenlandse catalogus die uw Teradata-database in Unity Catalog weerspiegelt, zodat u de syntaxis en hulpmiddelen voor gegevensbeheer van Unity Catalog kunt gebruiken om Azure Databricks-gebruikerstoegang tot de database te beheren.

Voordat u begint

Voordat u begint, moet u ervoor zorgen dat u voldoet aan de vereisten in deze sectie.

Vereisten voor Databricks

Vereisten voor werkruimte:

  • Werkruimte geactiveerd voor Unity Catalog.

Rekenvereisten:

  • Netwerkconnectiviteit van uw rekenresource naar de doeldatabasesystemen. Zie Netwerkaanbevelingen voor Lakehouse Federation.
  • Azure Databricks Compute moet Gebruikmaken van Databricks Runtime 16.1 of hoger en Gedeelde of Enkele gebruiker toegangsmodus.
  • SQL-warehouses moeten pro of serverloos zijn en moeten 2024.50 of hoger gebruiken.

Vereiste toestemmingen:

  • Als u een verbinding wilt maken, moet u een metastore-beheerder of een gebruiker zijn met de CREATE CONNECTION bevoegdheid voor de Unity Catalog-metastore die is gekoppeld aan de werkruimte.
  • Als u een buitenlandse catalogus wilt maken, moet u de machtiging CREATE CATALOG hebben voor de metastore en ofwel de eigenaar van de verbinding zijn of het privilege CREATE FOREIGN CATALOG voor de verbinding hebben.

Aanvullende machtigingsvereisten worden opgegeven in elke sectie op basis van taken die volgt.

Vereisten voor Teradata

Een Azure Databricks-verbinding maken

Een verbinding geeft een pad en referenties op voor toegang tot een extern databasesysteem. Als u een verbinding wilt maken, kunt u Catalog Explorer of de CREATE CONNECTION SQL-opdracht gebruiken in een Azure Databricks-notebook of de Databricks SQL-queryeditor.

Notitie

U kunt ook de Databricks REST API of de Databricks CLI gebruiken om een verbinding te maken. Zie POST /api/2.1/unity-catalog/connections en Unity Catalog-opdrachten.

vereiste machtigingen: Metastore-beheerder of gebruiker met de CREATE CONNECTION-bevoegdheid.

Catalogusverkenner

  1. Klik in uw Azure Databricks-werkruimte op het cataloguspictogram Catalogus.

  2. Klik boven in het deelvenster Catalogus op het Toevoegen- of pluspictogram en selecteer Verbinding toevoegen in het menu.

    U kunt ook op de pagina Snelle toegang op de knop Externe gegevens > klikken, naar het tabblad Verbindingen gaan en op Verbinding makenklikken.

  3. Op de pagina Verbindingsbeginselen van de wizard Verbinding instellen, voer een gebruiksvriendelijke verbindingsnaamin.

  4. Selecteer een verbindingstype van Teradata.

  5. (Optioneel) Voeg een opmerking toe.

  6. Klik op Volgende.

  7. Voer op de pagina Authentication de volgende verbindingseigenschappen in voor het Teradata-exemplaar:

    • Host: bijvoorbeeld teradata-demo.teradata.com
    • poort: bijvoorbeeld 1025
    • gebruiker: bijvoorbeeld teradata_user
    • wachtwoord: bijvoorbeeld password123
  8. Klik op Verbinding maken.

  9. Voer op de pagina Catalogus Basis een naam in voor de buitenlandse catalogus. Een refererende catalogus spiegelt een database in een extern gegevenssysteem, zodat u de toegang tot gegevens in die database kunt opvragen en beheren met behulp van Azure Databricks en Unity Catalog.

  10. (Optioneel) Klik op Verbinding testen om te bevestigen dat deze werkt.

  11. Klik op Maak de catalogus.

  12. Selecteer op de pagina Access de werkruimten waarin gebruikers toegang hebben tot de catalogus die u hebt gemaakt. U kunt Alle werkruimten hebben toegangselecteren of klikken op Toewijzen aan werkruimten, de werkruimten selecteren en vervolgens op Toewijzenklikken.

  13. Wijzig de eigenaar die in staat zal zijn de toegang tot alle objecten in de catalogus te beheren. Begin een principal in het tekstvak te typen en klik vervolgens op de principal in de geretourneerde resultaten.

  14. Verleent privileges aan de catalogus. Klik op Toestaan:

    1. Geef de Principals op die toegang hebben tot objecten in de catalogus. Begin een principal in het tekstvak te typen en klik vervolgens op de principal in de geretourneerde resultaten.
    2. Selecteer de vooraf ingestelde bevoegdheden om aan elke principal toe te kennen. Alle accountgebruikers ontvangen standaard BROWSE.
      • Selecteer Gegevenslezer in de vervolgkeuzelijst om read bevoegdheden te verlenen voor objecten in de catalogus.
      • Selecteer Gegevenseditor in de vervolgkeuzelijst om read en modify bevoegdheden voor objecten in de catalogus toe te kennen.
      • Selecteer handmatig de bevoegdheden die u wilt verlenen.
    3. Klik op Toestaan.
  15. Klik op Volgende.

  16. Specificeer sleutel-waardeparen van tags op de pagina Metagegevens. Zie Tags toepassen op beveiligbare objecten van Unity Catalogvoor meer informatie.

  17. (Optioneel) Voeg een opmerking toe.

  18. Klik op Opslaan.

SQL

Voer de volgende opdracht uit in een notebook of de Sql-queryeditor van Databricks:

CREATE CONNECTION <connection-name> TYPE teradata
OPTIONS (
  host '<hostname>',
  port '<port>',
  user '<user>',
  password '<password>'
);

Databricks raadt aan om Azure Databricks secrets te gebruiken in plaats van platte tekst voor gevoelige waarden zoals inloggegevens. Bijvoorbeeld:

CREATE CONNECTION <connection-name> TYPE teradata
OPTIONS (
  host '<hostname>',
  port '<port>',
  user secret ('<secret-scope>','<secret-key-user>'),
  password secret ('<secret-scope>','<secret-key-password>')
)

Als u tekenreeksen zonder opmaak moet gebruiken in SQL-opdrachten in notebooks, vermijd het afkappen van de tekenreeks door speciale tekens zoals $ met \te escapen. Bijvoorbeeld: \$.

Zie Geheimbeheervoor meer informatie over het instellen van geheimen.

Een buitenlandse catalogus maken

Notitie

Als u de UI gebruikt om een verbinding met de gegevensbron te maken, is de creatie van een buitenlandse catalogus inbegrepen en kunt u deze stap overslaan.

Een refererende catalogus spiegelt een database in een extern gegevenssysteem, zodat u de toegang tot gegevens in die database kunt opvragen en beheren met behulp van Azure Databricks en Unity Catalog. Om een buitenlandse catalogus te maken, gebruikt u een verbinding met de gegevensbron die al is gedefinieerd.

Als u een buitenlandse catalogus wilt maken, kunt u Catalog Explorer of de CREATE FOREIGN CATALOG SQL-opdracht gebruiken in een Azure Databricks-notebook of de SQL-query-editor.

U kunt ook de Databricks REST API of de Databricks CLI gebruiken om een catalogus te maken. Zie POST /api/2.1/unity-catalog/catalogs en Unity Catalog-opdrachten.

Vereiste toestemmingen:CREATE CATALOG toestemming voor de metastore en het eigendom van de verbinding of de CREATE FOREIGN CATALOG bevoegdheid voor de verbinding.

Catalogusverkenner

  1. Klik in uw Azure Databricks-werkruimte op CataloguspictogramCatalog om Catalog Explorer te openen.

  2. Klik bovenaan het deelvenster Catalogus op het pictogram Toevoegen of plustoevoegen en selecteer Een catalogus toevoegen in het menu.

    U kunt ook op de pagina Snelle toegang op de knop Catalogi klikken en vervolgens op de knop Catalogus maken klikken.

  3. Volg de instructies voor het maken van buitenlandse catalogi in Catalogi maken.

SQL

Voer de volgende SQL-opdracht uit in een notebook of SQL-queryeditor. Items tussen haakjes zijn optioneel. Vervang de waarden van de tijdelijke aanduidingen:

  • <catalog-name>: naam voor de catalogus in Azure Databricks.
  • <connection-name>: het verbindingsobject waarmee de gegevensbron, het pad en de toegangsreferenties worden opgegeven.
  • <database-name>: de naam van de database die u wilt spiegelen als catalogus in Azure Databricks.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (database '<database-name>');

Ondersteunde pushdowns

De volgende pushdowns worden ondersteund:

  • Filters
  • Projecties
  • Grens
  • Aggregaten
  • Gieten
  • Bevat, Begint met, Eindigt op, Zoals

Gegevenstypetoewijzingen

Wanneer u gegevens van Teradata naar Spark leest, worden gegevenstypen als volgt toegewezen:

Teradata type Sparktype
Byte, Blob BinaryType
Byteint, Smallint, Integer IntegerType
BigInt LongType
Vlottend, Dubbel, Dubbele Precisie DoubleType
Getal(n, m) DecimaalType
Nummer(, m), Nummer(), Nummer Niet ondersteund
Varchar(N) StringType
Tijd, tijdstempel Tijdstempeltype