Összevont lekérdezések futtatása a Snowflake-on (alapszintű hitelesítés)

Ez a lap bemutatja, hogyan állíthatja be a Lakehouse Federationt összevont lekérdezések futtatására olyan Snowflake-adatokon, amelyeket nem az Azure Databricks kezel. A Lakehouse Federation szolgáltatással kapcsolatos további információkért lásd a következőt: Kapcsolódás külső adatbázisokhoz és katalógusokhoz

A Snowflake-adatbázishoz a Lakehouse Federation használatával való csatlakozáshoz a következőket kell létrehoznia az Azure Databricks Unity Catalog metaadattárában (a 2023. november 9. után létrehozott munkaterületeken már automatikusan ki van építve a Unity Catalog metaadattára):

  • Kapcsolat a Snowflake-adatbázissal.
  • Egy külföldi katalógus , amely tükrözi a Snowflake-adatbázist a Unity Catalogban, így a Unity Catalog lekérdezési szintaxisával és adatszabályozási eszközeivel kezelheti az Azure Databricks-felhasználók hozzáférését az adatbázishoz.

Ez az oldal bemutatja, hogyan futtathat összevont lekérdezéseket a Snowflake-adatokon alapszintű hitelesítéssel (felhasználónév/jelszó). Egyéb hitelesítési módszerekért tekintse meg a következő oldalakat:

Összevont lekérdezéseket futtathat a Snowflake-on lekérdezés-összevonás vagy katalógus-összevonás használatával.

A lekérdezések összevonásában a JDBC leküldi a Unity Catalog-lekérdezést a külső adatbázisba. Ez ideális az igény szerinti jelentéskészítéshez vagy az ETL-folyamatokon végzett megvalósíthatósági vizsgálathoz.

A katalógus-összevonásban a Unity Catalog-lekérdezés közvetlenül a fájltárolón fut. Ez a módszer hasznos lehet a növekményes migráláshoz kódadaptálás nélkül, vagy hosszabb távú hibrid modellként olyan szervezetek számára, amelyeknek a Unity Katalógusban regisztrált adataik mellett a Snowflake-ben is meg kell őrizniük bizonyos adatokat. Lásd: A Snowflake katalógus federáció engedélyezése.

Mielőtt hozzákezdene

Munkaterületre vonatkozó követelmények:

  • A Unity Cataloghoz engedélyezett munkaterület. A 2023. november 9. után létrehozott munkaterületek automatikusan engedélyezve vannak a Unity Katalógusban, beleértve az automatikus metaadattár-kiépítést is. Nem kell manuálisan létrehoznia egy metaadattárat, hacsak a munkaterület nem előzi meg az automatikus engedélyezést, és nem lett aktiválva a Unity Catalog számára. Tekintse meg a Unity Catalog használatának első lépéseit.

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, valamint a Standard vagy dedikált hozzáférési módot kell használnia.
  • 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. A Unity Cataloghoz automatikusan engedélyezett munkaterületeken alapértelmezés szerint a munkaterület rendszergazdái rendelkeznek a CREATE CONNECTION jogosultsággal.
  • 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. A Unity Cataloghoz automatikusan engedélyezett munkaterületeken alapértelmezés szerint a munkaterület rendszergazdái rendelkeznek a CREATE CATALOG jogosultsággal.

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

A Microsoft Entra ID konfigurálása

Kövesse a Microsoft Entra id for External OAuth konfigurálását a Snowflake dokumentációjában.

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.

Megjegyzé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 az Adatok ikonra.Katalógus.

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

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

  4. Válassza ki a Snowflake kapcsolattípusát.

  5. Hitelesítési típus esetén válassza az Username and password (alapszintű hitelesítés) lehetőséget a legördülő menüből.

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

  7. Kattintson a Tovább feliratra.

  8. Adja meg a Snowflake-raktár következő hitelesítési és kapcsolati adatait. A kiválasztott hitelesítési módszerre jellemző tulajdonságokat zárójelben a Auth type előzi meg.

    • hoszt: Például snowflake-demo.east-us-2.azure.snowflakecomputing.com
    • Port: Például: 443
    • Felhasználó: Például: snowflake-user
    • jelszó: Például password123
  9. Kattintson a Tovább feliratra.

  10. A Kapcsolat részletei lapon adja meg a következőket:

    • Hópehelyraktár: Például: my-snowflake-warehouse
    • (Nem kötelező) proxy hoszt: A Snowflake-hez való csatlakozáshoz használt proxy hosztja. Emellett ki kell választania a Proxy használata lehetőséget, és meg kell adnia a Proxy portot.
    • (Nem kötelező) Proxyhasználata: Azt jelzi, hogy a Snowflake-hez proxykiszolgálóval csatlakozik-e.
    • (Nem kötelező) proxyport: A Snowflake-hez való csatlakozáshoz használt proxy portja. Emellett ki kell jelölnie a Proxy használata lehetőséget, és meg kell adnia a Proxy kiszolgáló.
    • (Nem kötelező) Snowflake szerepkör: A csatlakozás után a munkamenethez használni kívánt alapértelmezett biztonsági szerepkör.
  11. Kattintson a Tovább feliratra.

  12. A Katalógus alapjai lapon adja meg a külföldi 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.

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

  14. Kattintson a Katalógus létrehozásaelemre.

  15. Az Access lapon válassza ki azokat a munkaterületeket, amelyeken a felhasználók hozzáférhetnek a létrehozott katalógushoz. Jelölje ki az Összes munkaterület hozzáféréssel rendelkezik lehetőséget, vagy kattintson a Munkaterületek hozzárendelése gombra, jelölje ki a munkaterületeket, majd kattintson a Hozzárendelés gombra.

  16. Módosítsa azt a tulajdonost , aki kezelni tudja a katalógus összes objektumához való hozzáférést. Kezdje el beírni a főtényezőt a szövegmezőbe, majd kattintson a megjelenített eredmények között a főtényezőre.

  17. Adjon jogosultságokat a katalógushoz. Kattintson a "Engedélyezés"gombra:

    1. Adja meg azokat a felelősöket, akik hozzáférhetnek a katalógusban lévő objektumokhoz. Kezdje el beírni a főtényezőt a szövegmezőbe, majd kattintson a megjelenített eredmények között a főtényezőre.
    2. Válassza ki a jogosultsági beállításokat, amelyeket az egyes szereplőknek kíván adni. Alapértelmezés szerint minden fiókfelhasználó BROWSE kap.
      • Válassza az Adatolvasó lehetőséget a legördülő menüben a katalógusban lévő objektumokra vonatkozó jogosultságok megadásához read .
      • Válassza az Adatszerkesztőt a legördülő menüből, hogy read és modify jogosultságokat adjon a katalógus objektumaihoz.
      • Jelölje ki manuálisan a megadni kívánt jogosultságokat.
    3. Kattintson az Engedélyezés gombra.
  18. Kattintson a Tovább feliratra.

  19. 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.

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

  21. Kattintson a Mentés lehetőségre.

SQL

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

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

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

CREATE CONNECTION <connection-name> TYPE snowflake
OPTIONS (
  host '<hostname>',
  port '<port>',
  sfWarehouse '<warehouse-name>',
  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.

Speciális kapcsolati beállítások

A snowflake-kapcsolatok a következő speciális beállítást támogatják a korlátozott kimenő vagy privát kapcsolati környezetekhez:

  • disableOCSPChecks: Állítsa be az true online tanúsítványállapot-protokoll (OCSP) tanúsítvány-visszavonási ellenőrzésének letiltására a Snowflake JDBC-illesztőben. Az OCSP-ellenőrzések letiltása kihagyja a tanúsítványok visszavonásának ellenőrzését.

Important

Amikor csak lehetséges, engedélyezze a Snowflake OCSP-válaszadó felé irányuló kimenő forgalmat. Hagyja üresen a(z) disableOCSPChecks értéket, vagy állítsa false értékre. Csak akkor állítsa erre: true, ha a korlátozott kimenő adatforgalmat kezelő vagy a privát kapcsolati konfigurációja nem teszi lehetővé ezt a forgalmat.

Ez a beállítás nem jelenik meg a Katalóguskezelőben. Ezt az SQL-kapcsolat létrehozásakor állíthatja be:

CREATE CONNECTION <connection-name> TYPE snowflake
OPTIONS (
  <connection-options>,
  disableOCSPChecks 'true'
);

Meglévő kapcsolat esetén használja a következőt ALTER CONNECTION: .

Kis- és nagybetűket megkülönböztető adatbázis-azonosítók

A database külföldi katalógus mezője a Snowflake adatbázis-azonosítóra leképez. Ha a Snowflake-adatbázis azonosítója nem megkülönbözteti a kis- és nagybetűk megkülönböztetését, a külső katalógusban <database-name> használt burkolat megmarad. Ha azonban a Snowflake-adatbázis azonosítója megkülönbözteti a kis- és nagybetűket, a kis- és nagybetűk megőrzéséhez a külföldi katalógust <database-name> dupla idézőjelekbe kell csomagolnia.

Például:

  • database át van alakítva DATABASE

  • "database" át van alakítva database

  • "database""" át van alakítva database"

    A dupla idézőjelek feloldásához használjon egy másik dupla idézőjelet.

  • "database"" hibát eredményez, mert a kettős idézőjel nincs megfelelően escape-elve.

További információ: Azonosítókövetelmények a Snowflake dokumentációjában.

Támogatott leküldések

A következő veremtöltések támogatottak:

  • Szűrők
  • Előrejelzések
  • Korlátozás
  • Offset
  • Csatlakozik
  • Összesítések (Átlag, Corr, CovPopulation, CovSample, Count, Max, Min, StddevPop, StddevSamp, Sum, VariancePop, VarianceSamp)
  • Függvények (Sztringfüggvények, Matematikai függvények, Dátum, Idő és Időbélyeg függvények és egyéb egyéb függvények, például Alias, Cast, SortOrder)
  • Ablakfüggvények (DenseRank, Rank, RowNumber)
  • Rendezés
  • Top-N (a rendezés és a korlát egyetlen műveletbe kombinálása) a Databricks Runtime 17.3-ban és újabb verziókban támogatott

Adattípus-leképezések

Ha Snowflake-ből Sparkba olvas, az adattípusok a következőképpen kerülnek megfeleltetésre:

Hópehely típusa Spark-típus
\, \, \ DecimalType
bigint, byteint, int, integersmallinttinyint IntegerType
\, \, \ FloatType
\, \, \ DoubleType
char, character, string, texttimevarchar StringType
binary BinaryType
boolean BooleanType
date DateType
datetime, timestamp, timestamp_ltz, timestamp_ntztimestamp_tz TimestampType