Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här sidan beskriver hur du konfigurerar Lakehouse Federation för att köra federerade frågor på Kör frågor på PostgreSQL-data som inte hanteras av Azure Databricks. Mer information om Lakehouse Federation finns i Vad är Lakehouse Federation?
Om du vill ansluta till dina Run-frågor i PostgreSQL-databasen med Lakehouse Federation måste du skapa följande i azure Databricks Unity Catalog-metaarkivet:
- En anslutning till dina Kör-frågor i PostgreSQL-databasen.
- En utländsk katalog som speglar dina frågor som körs på PostgreSQL-databasen i Unity Catalog, så att du kan använda frågesyntaxen och datastyrningsverktygen i Unity Catalog för att hantera användaråtkomst till databasen i Azure Databricks.
Innan du börjar
Krav för arbetsyta:
- Arbetsytan är aktiverad för Unity Catalog.
Beräkningskrav:
- Nätverksanslutning från beräkningsresursen till måldatabassystemen. Se Nätverksrekommendationer för Lakehouse Federation.
- Azure Databricks-beräkning måste använda Databricks Runtime 13.3 LTS eller senare och standard - eller dedikerat åtkomstläge.
- SQL-lager måste vara pro eller serverlösa och måste använda 2023.40 eller senare.
Behörigheter som krävs:
- Om du vill skapa en anslutning måste du vara metaarkivadministratör eller användare med
CREATE CONNECTIONbehörighet i Unity Catalog-metaarkivet som är kopplat till arbetsytan. - Om du vill skapa en extern katalog måste du ha behörigheten
CREATE CATALOGi metaarkivet och antingen vara ägare till anslutningen eller haCREATE FOREIGN CATALOGbehörighet för anslutningen.
Ytterligare behörighetskrav anges i varje aktivitetsbaserat avsnitt som följer.
Skapa en anslutning
En anslutning anger en sökväg och autentiseringsuppgifter för åtkomst till ett externt databassystem. Om du vill skapa en anslutning kan du använda Catalog Explorer eller kommandot CREATE CONNECTION SQL i en Azure Databricks-notebook-fil eller Databricks SQL-frågeredigeraren.
Note
Du kan också använda Databricks REST API eller Databricks CLI för att skapa en anslutning. Se kommandona POST /api/2.1/unity-catalog/connections och Unity Catalog.
Behörigheter som krävs: Metaarkivadministratör eller användare med behörighet.CREATE CONNECTION
Katalogutforskaren
På din Azure Databricks-arbetsyta klickar du på
Katalog.
Längst upp i fönstret Catalog klickar du på ikonen
Ikonen Lägg till och väljer Lägg till en anslutning på menyn.Från sidan Snabbåtkomst klickar du på knappen Externa data >, går till fliken Anslutningar och klickar på Skapa anslutning.
På sidan Anslutningsgrunder i guiden Konfigurera anslutning, ange ett användarvänligt Anslutningsnamn.
Välj en anslutningstyp av PostgreSQL.
(Valfritt) Lägg till en kommentar.
Klicka på Nästa.
På sidan Authentication anger du följande anslutningsegenskaper för PostgreSQL-instansen.
-
Värd: Till exempel
postgres-demo.lb123.us-west-2.rds.amazonaws.com -
Port: Till exempel
5432 -
Användare: Till exempel
postgres_user -
Lösenord: Till exempel
password123
-
Värd: Till exempel
Klicka på Skapa anslutning.
På catalog basics-sidan anger du ett namn för den externa katalogen. En extern katalog speglar en databas i ett externt datasystem så att du kan köra frågor mot och hantera åtkomst till data i databasen med hjälp av Azure Databricks och Unity Catalog.
(Valfritt) Klicka på Testa anslutning för att bekräfta att den fungerar.
Klicka på Skapa katalog.
På sidan Access väljer du de arbetsytor där användarna kan komma åt katalogen som du skapade. Du kan välja Alla arbetsytor har åtkomsteller klicka på Tilldela till arbetsytor, välj arbetsytor och klicka sedan på Tilldela.
Ändra ägaren som kommer att kunna hantera åtkomst till alla objekt i katalogen. Börja skriva ett huvudnamn i textrutan och klicka sedan på huvudkontot i de returnerade resultaten.
Bevilja privilegier i katalogen. Klicka på Tillåt:
- Ange principals vem som ska ha åtkomst till objekt i katalogen. Börja skriva ett huvudnamn i textrutan och klicka sedan på huvudkontot i de returnerade resultaten.
- Välj privilegieförinställningar att bevilja varje huvudman. Alla kontoanvändare beviljas
BROWSEsom standard.- Välj dataläsare från den nedrullningsbara menyn för att bevilja
readbehörigheter för objekt i katalogen. - Välj dataredigeraren från den nedrullningsbara menyn för att bevilja
readochmodifybehörigheter för objekt i katalogen. - Välj de behörigheter som ska beviljas manuellt.
- Välj dataläsare från den nedrullningsbara menyn för att bevilja
- Klicka på Tillåt.
Klicka på Nästa.
På sidan metadata anger du taggar för nyckel/värde-par. Mer information finns i Tillämpa taggar på skyddsbara objekt i Unity Catalog.
(Valfritt) Lägg till en kommentar.
Klicka på Spara.
SQL
Kör följande kommando i en notebook-fil eller Databricks SQL-frågeredigeraren.
CREATE CONNECTION <connection-name> TYPE postgresql
OPTIONS (
host '<hostname>',
port '<port>',
user '<user>',
password '<password>'
);
Vi rekommenderar att du använder Azure Databricks hemligheter i stället för textsträngar för känsliga värden som autentiseringsuppgifter. Till exempel:
CREATE CONNECTION <connection-name> TYPE postgresql
OPTIONS (
host '<hostname>',
port '<port>',
user secret ('<secret-scope>','<secret-key-user>'),
password secret ('<secret-scope>','<secret-key-password>')
)
Information om hur du konfigurerar hemligheter finns i Hemlighetshantering.
Skapa en utländsk katalog
Note
Om du använder användargränssnittet för att skapa en anslutning till datakällan inkluderas skapande av utländsk katalog och du kan hoppa över det här steget.
En extern katalog speglar en databas i ett externt datasystem så att du kan köra frågor mot och hantera åtkomst till data i databasen med hjälp av Azure Databricks och Unity Catalog. För att skapa en extern katalog använder du en anslutning till datakällan som redan har definierats.
Om du vill skapa en extern katalog kan du använda Catalog Explorer eller kommandot CREATE FOREIGN CATALOG SQL i en Azure Databricks-notebook-fil eller SQL-frågeredigeraren. Du kan också använda Databricks REST API eller Databricks CLI för att skapa en katalog. Se kommandona POST /api/2.1/unity-catalog/catalogs och Unity Catalog.
Behörigheter som krävs:CREATE CATALOG behörighet för metaarkivet och antingen ägarskap för anslutningen eller behörigheten CREATE FOREIGN CATALOG för anslutningen.
Katalogutforskaren
På din Azure Databricks-arbetsyta klickar du på
Katalog för att öppna Katalogutforskaren.
Längst upp i fönstret Catalog klickar du på ikonen
ikonen Lägg till och väljer Lägg till en katalog på menyn.Från sidan Snabbåtkomst klickar du på knappen Kataloger och klickar sedan på knappen Skapa katalog.
Följ anvisningarna för att skapa externa kataloger i Skapa kataloger.
SQL
Kör följande SQL-kommando i en notebook- eller SQL-frågeredigerare. Objekt inom hakparenteser är valfria. Ersätt platshållarvärdena:
-
<catalog-name>: Namn på katalogen i Azure Databricks. -
<connection-name>: Det anslutningsobjektet som anger autentiseringsuppgifterna för datakälla, sökväg och åtkomst. -
<database-name>: Namnet på databasen som du vill spegla som en katalog i Azure Databricks.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (database '<database-name>');
Pushdowns som stöds
Följande pushdowns stöds för all beräkning:
- Filters
- Projections
- Limit
- Funktioner: partiell, endast för filteruttryck. (Strängfunktioner, matematiska funktioner och andra diverse funktioner, till exempel Alias, Cast, SortOrder)
Följande pushdowns stöds på Databricks Runtime 13.3 LTS och senare och på SQL-lager:
- Följande sammansättningsfunktioner: MIN, MAX, COUNT, SUM, AVG, VAR_POP, VAR_SAMP, STDDEV_POP, STDDEV_SAMP, GREATEST, LEAST, COVAR_POP, COVAR_SAMP, CORR, REGR_INTERCEPT, REGR_R2, REGR_SLOPE, REGR_SXY
- Följande booleska funktioner: =, <, <, =>, >=, <=>
- Följande matematiska funktioner (stöds inte om ANSI är inaktiverat): +, -, *, %, /
- Diverse operatorer | och~
- Sortering, när den används med gräns
Följande pushdowns stöds inte:
- Joins
- Windows-funktioner
Datatypsmappningar
När du läser från PostgreSQL till Spark mappar datatyper på följande sätt:
| PostgreSQL-typ | Sparktyp |
|---|---|
| numeric | DecimalType |
| int2 | ShortType |
| int4 (om det inte är signerat) | IntegerType |
| int8, oid, xid, int4 (om signerad) | LongType |
| float4 | FloatType |
| dubbel precision, float8 | DoubleType |
| char | CharType |
| name, varchar, tid | VarcharType |
| bpchar, karaktär varierande, json, pengar, punkt, super, text | StringType |
| bytea, geometri, varbyte | BinaryType |
| bit, bool | BooleanType |
| date | DateType |
| tabstime, tid, tid med tidszon, timetz, tid utan tidszon, tidsstämpel med tidszon, tidsstämpel, tidsstämpel, tidsstämpel, tidsstämpel utan tidszon* | TimestampType/TimestampNTZType |
| Postgresql-matristyp** | ArrayType |
*När du läser från Postgresql mappas Postgresql Timestamp till Spark TimestampType om preferTimestampNTZ = false (standard). Postgresql Timestamp mappas till TimestampNTZType om preferTimestampNTZ = true.
**Begränsade matristyper stöds.