Megosztás a következőn keresztül:


Összevont lekérdezések futtatása az Amazon Redshiften

Ez a cikk azt ismerteti, hogyan állíthatja be a Lakehouse Federationt összevont lekérdezések futtatására az Azure Databricks által nem felügyelt Amazon Redshift-adatok lekérdezéseinek futtatásakor. Ha többet szeretne megtudni a Lakehouse Federation-ről, olvassa el a Mi az a Lakehouse Federation?

Ha az Amazon Redshift-adatbázisban futó lekérdezésekhez a Lakehouse Federation használatával szeretne csatlakozni, az alábbiakat kell létrehoznia az Azure Databricks Unity Catalog metaadattárában:

  • Kapcsolat az Amazon Redshift-adatbázis futtatási lekérdezéseihez.
  • Egy külső katalógus, amely tükrözi az Amazon Redshift adatbázisban futtatott lekérdezéseket a Unity Catalogban, így a Unity Catalog lekérdezési szintaxisát és adatszabályozási eszközeit használhatja az Azure Databricks felhasználói hozzáférésének kezelésére az adatbázishoz.

Mielőtt elkezdené

Munkaterületre vonatkozó követelmények:

  • A Unity Cataloghoz engedélyezett munkaterület.

Számítási követelmények:

  • Hálózati kapcsolat a számítási erőforrás és a céladatbázis-rendszerek között. Lásd a Lakehouse Federation hálózatkezelési ajánlásait.
  • Az Azure Databricks compute-nek a Databricks Runtime 13.3 LTS vagy újabb verzióját kell használnia, és megosztott vagy egyfelhasználós hozzáférési módot.
  • Az SQL-raktáraknak pro- vagy kiszolgáló nélkülinek kell lenniük, és a 2023.40-et vagy újabb verziót kell használniuk.

Szükséges engedélyek:

  • Kapcsolat létrehozásához metaadattár-rendszergazdának vagy CREATE CONNECTION jogosultsággal rendelkező felhasználónak kell lennie a munkaterülethez csatolt Unity Catalog metaadattárban.
  • Külföldi katalógus létrehozásához rendelkeznie kell a metaadattár CREATE CATALOG engedélyével, és vagy a kapcsolat tulajdonosának kell lennie, vagy CREATE FOREIGN CATALOG jogosultsággal kell rendelkeznie a kapcsolaton.

Az alábbi tevékenységalapú szakaszokban további engedélykövetelmények vannak megadva.

Kapcsolat létrehozása

A kapcsolat megadja a külső adatbázisrendszer eléréséhez szükséges elérési utat és hitelesítő adatokat. Kapcsolat létrehozásához használhatja a Catalog Explorert vagy a CREATE CONNECTION SQL-parancsot egy Azure Databricks-jegyzetfüzetben vagy a Databricks SQL-lekérdezésszerkesztőben.

Feljegyzés

A Databricks REST API-val vagy a Databricks parancssori felülettel is létrehozhat kapcsolatot. Lásd: POST /api/2.1/unity-catalog/connections és Unity Catalog-parancsok.

Szükséges engedélyek: Metaadattár-rendszergazda vagy jogosultsággal CREATE CONNECTION rendelkező felhasználó.

Katalóguskezelő

  1. Az Azure Databricks-munkaterületen kattintson Katalógus ikonraKatalógus.

  2. A Katalógus panel tetején kattintson a Hozzáadás vagy plusz ikonra hozzáadása ikonra, majd válassza a Kapcsolat hozzáadása lehetőséget a menüből.

    Másik lehetőségként a Gyorselérési lapon kattintson a Külső adatok > gombra, nyissa meg a Kapcsolatok lapot, majd kattintson a Kapcsolat létrehozásagombra.

  3. A Kapcsolat beállítása varázsló Kapcsolat részletei lapján adjon meg egy felhasználóbarát kapcsolatnevet.

  4. Válassza ki a Redshiftkapcsolat típusát.

  5. (Nem kötelező) Megjegyzés hozzáadása.

  6. Kattintson a Továbbgombra.

  7. A Hitelesítési lapon adja meg a Redshift-példány alábbi kapcsolati tulajdonságait.

    • Gazdagép: Például: redshift-demo.us-west-2.redshift.amazonaws.com
    • Port: Például: 5439
    • Felhasználó: Például: redshift_user
    • Jelszó: Például: password123
  8. (Nem kötelező) AZ SSL-gazdagépnév ellenőrzésének letiltása.

  9. Kattintson a Kapcsolat létrehozásaelemre.

  10. A Katalógus alapjai lapon adja meg az idegen katalógus nevét. A külső katalógus egy külső adatrendszer adatbázisát tükrözi, így az Azure Databricks és a Unity Catalog használatával lekérdezheti és kezelheti az adatbázisban lévő adatokhoz való hozzáférést.

  11. (Nem kötelező) Kattintson a Kapcsolat tesztelése elemre annak ellenőrzéséhez, hogy működik-e.

  12. Kattintson Katalógus létrehozásaelemre.

  13. Az Access lapon válassza ki azokat a munkaterületeket, amelyeken a felhasználók hozzáférhetnek a létrehozott katalógushoz. Kiválaszthatja Minden munkaterület rendelkezik hozzáféréssel, vagy kattintson a Hozzárendelés munkaterületekhezelemre, jelölje ki a munkaterületeket, majd kattintson hozzárendelése gombra.

  14. Módosítsa a tulajdonost, aki képes lesz kezelni a katalógus összes objektumához való hozzáférést. Kezdje el beírni a szereplőt a szövegmezőbe, majd kattintson a visszaadott eredmények között a szereplőre.

  15. Adjon jogosultságokat a katalógusban. Kattintson a engedélyezéséhez:

    1. Adja meg azokat a egyszerű, akik hozzáférhetnek a katalógusban lévő objektumokhoz. Kezdje el beírni a szereplőt a szövegmezőbe, majd kattintson a visszaadott eredmények között a szereplőre.
    2. Válassza ki a jogosultsági beállításokat, az egyes tagoknak való engedélyezéshez. Alapértelmezés szerint minden fiókfelhasználó BROWSE kap.
      • A legördülő menüben válassza Adatolvasó lehetőséget, hogy read jogosultságokat biztosítson a katalógus objektumaihoz.
      • A legördülő menüben válassza Adatszerkesztő lehetőséget, hogy read és modify jogosultságokat biztosítson a katalógus objektumaihoz.
      • Jelölje ki manuálisan a megadni kívánt jogosultságokat.
    3. Kattintson a megadása gombra.
  16. Kattintson a Továbbgombra.

  17. A Metaadatok lapon adja meg a címkék kulcs-érték párjait. További információ: Címkék alkalmazása a Unity Catalog biztonságos objektumaira.

  18. (Nem kötelező) Megjegyzés hozzáadása.

  19. Kattintson a Mentésgombra.

SQL

Futtassa a következő parancsot egy jegyzetfüzetben vagy a Databricks SQL-lekérdezésszerkesztőben.

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

Javasoljuk, hogy az Azure Databricks titkos kulcsokat használjon egyszerű szöveges sztringek helyett olyan bizalmas értékekhez, mint a hitelesítő adatok. Példa:

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

A titkos kódok beállításáról további információt a Titkos kódok kezelése című témakörben talál.

Idegen katalógus létrehozása

Feljegyzés

Ha a felhasználói felülettel hoz létre kapcsolatot az adatforrással, a rendszer külföldi katalóguslétrehozásról is rendelkezik, és kihagyhatja ezt a lépést.

A külső katalógus egy külső adatrendszer adatbázisát tükrözi, így az Azure Databricks és a Unity Catalog használatával lekérdezheti és kezelheti az adatbázisban lévő adatokhoz való hozzáférést. Idegen katalógus létrehozásához a már definiált adatforráshoz való kapcsolatot kell használnia.

Idegen katalógus létrehozásához használhatja a Catalog Explorert vagy a CREATE FOREIGN CATALOG SQL-parancsot egy Azure Databricks-jegyzetfüzetben vagy az SQL-lekérdezésszerkesztőben.

Katalógus létrehozásához használhatja a Databricks REST API-t vagy a Databricks parancssori felületet is. Lásd POST /api/2.1/unity-catalog/catalogs és Unity Catalog parancsokat.

Szükséges engedélyek:CREATE CATALOG a metaadattár engedélye, illetve a kapcsolat tulajdonjoga vagy a CREATE FOREIGN CATALOG kapcsolat jogosultsága.

Katalóguskezelő

  1. Az Azure Databricks-munkaterületen kattintson Katalógus ikonraKatalógus a Catalog Explorer megnyitásához.

  2. A Katalógus panel tetején kattintson a Hozzáadás vagy plusz ikonra hozzáadása ikonra, majd válassza Katalógus hozzáadása lehetőséget a menüből.

    Másik lehetőségként a Gyorselérési lapon kattintson a Katalógusok gombra, majd a Katalógus létrehozása gombra.

  3. Kövesse az utasításokat a külföldi katalógusok létrehozásához Katalógusok létrehozása.

SQL

Futtassa a következő SQL-parancsot egy jegyzetfüzetben vagy egy SQL-lekérdezésszerkesztőben. A szögletes zárójelek nem kötelezőek. Cserélje le a helyőrző értékeket:

  • <catalog-name>: A katalógus neve az Azure Databricksben.
  • : Az adatforrást, elérési utat és hozzáférési hitelesítő adatokat megadó kapcsolatobjektum.
  • <database-name>: Annak az adatbázisnak a neve, amelyet katalógusként szeretne tükrözni az Azure Databricksben.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (database '<database-name>');

Támogatott leküldéses leküldések

A következő leküldéses leküldések támogatottak:

  • Szűrők
  • Leképezések
  • Határ
  • Összekapcsolások
  • Összesítések (Átlag, Darabszám, Max, Min, StddevPop, StddevSamp, Sum, VarianceSamp)
  • Függvények (Sztringfüggvények és egyéb egyéb függvények, például Alias, Cast, SortOrder)
  • Rendezés

A következő leküldéses leküldések nem támogatottak:

  • Windows-függvények

Adattípus-leképezések

Amikor a Redshiftből a Sparkba olvas, az adattípusok az alábbiak szerint lesznek megfeleltetve:

Redshift típus Spark-típus
Numerikus Decimális típus
int2, int4 Egész számtípus
int8, oid, xid LongType
float4 FloatType
dupla pontosság, float8, pénz DoubleType
bpchar, char, character varying, name, super, text, tid, varchar StringType
bájt, geometria, varbyte BinaryType
bit, bool Logikai típus
dátum: DateType
tabstime, time, time with time zone, timetz, timetz, time zone, timetamp with time zone, timestamp, timestamptz, timetamp without time zone* TimestampType/TimestampNTZType

*Amikor a Redshiftből olvas, a Redshift Timestamp a Sparkra TimestampType van leképezve, ha infer_timestamp_ntz_type = false (alapértelmezett). Redshift Timestamp van megfeleltetve, ha TimestampNTZTypeinfer_timestamp_ntz_type = true.