Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Op deze pagina wordt beschreven hoe u Lakehouse Federation instelt om federatieve query's uit te voeren op MySQL-gegevens die niet worden beheerd door Azure Databricks. Zie Wat is Lakehouse Federation voor meer informatie over Lakehouse Federation?
Als u verbinding wilt maken met uw MySQL-database met behulp van Lakehouse Federation, moet u het volgende maken in uw Azure Databricks Unity Catalog-metastore:
- Een verbinding met uw MySQL-database.
- Een buitenlandse catalogus die uw MySQL-database in Unity Catalog spiegelt, zodat u de querysyntaxis en gegevensbeheerhulpprogramma's van Unity Catalog kunt gebruiken om de toegang van Azure Databricks-gebruikers tot de database te beheren.
Voordat u begint
Vereisten voor werkruimte:
- Werkruimte geactiveerd voor Unity Catalog.
Rekenvereisten:
- Netwerkconnectiviteit van uw rekenresource naar de doeldatabasesystemen. Zie De aanbevelingen voor netwerken voor Lakehouse Federation.
- Azure Databricks Compute moet gebruikmaken van Databricks Runtime 13.3 LTS of hoger en de standaard - of toegewezen toegangsmodus.
- SQL-warehouses moeten pro of serverloos zijn en moeten 2023.40 of hoger gebruiken.
Vereiste machtigingen:
- Als u een verbinding wilt maken, moet u een metastore-beheerder of een gebruiker zijn met de
CREATE CONNECTIONbevoegdheid voor de Unity Catalog-metastore die is gekoppeld aan de werkruimte. - Als u een buitenlandse catalogus wilt maken, moet u de machtiging
CREATE CATALOGhebben voor de metastore en ofwel de eigenaar van de verbinding zijn of het privilegeCREATE FOREIGN CATALOGvoor de verbinding hebben.
Aanvullende machtigingsvereisten worden opgegeven in elke sectie op basis van taken die volgt.
SSL is vereist om een verbinding te maken.
Een 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
Klik in uw Azure Databricks-werkruimte op
Catalogus.
Klik boven in het deelvenster Catalogus op het
Toevoegen pictogram 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 maken klikken.
Voer op de pagina Verbindingsbeginselen van de wizard Verbinding instellen een gebruiksvriendelijke verbindingsnaam in.
Selecteer een verbindingstype van MySQL.
(Optioneel) Voeg een opmerking toe.
Klik op Volgende.
Voer op de pagina Authentication de volgende verbindingseigenschappen in voor uw MySQL-exemplaar:
-
Host: bijvoorbeeld
mysql-demo.lb123.us-west-2.rds.amazonaws.com -
Poort: bijvoorbeeld
3306 -
Gebruiker: bijvoorbeeld
mysql_user -
Wachtwoord: bijvoorbeeld
password123
-
Host: bijvoorbeeld
(Optioneel): Selecteer Vertrouw servercertificaat. Dit is standaard uitgeschakeld. Wanneer deze optie is geselecteerd, gebruikt de transportlaag SSL om het kanaal te versleutelen en wordt de certificaatketen omzeild om de vertrouwensrelatie te valideren. Laat deze instelling op de standaardwaarde staan, tenzij u een specifieke noodzaak hebt om vertrouwensvalidatie te omzeilen.
Klik op Verbinding maken.
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.
(Optioneel) Klik op Verbinding testen om te bevestigen dat deze werkt.
Klik op Catalogus maken.
Selecteer op de pagina Access de werkruimten waarin gebruikers toegang hebben tot de catalogus die u hebt gemaakt. U kunt Alle werkruimten hebben toegang selecteren, of op Toewijzen aan werkruimten klikken, de werkruimten selecteren en vervolgens op Toewijzen klikken.
Wijzig de eigenaar die de toegang tot alle objecten in de catalogus kan beheren. Begin een principal in het tekstvak te typen en klik vervolgens op de principal in de geretourneerde resultaten.
Verleen privileges aan de catalogus. Klik op Toestaan:
- 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.
- Selecteer de vooraf ingestelde bevoegdheden om aan elke principal toe te kennen. Alle accountgebruikers krijgen standaard
BROWSEtoegekend.- Selecteer Gegevenslezer in de vervolgkeuzelijst om bevoegdheden voor objecten in de catalogus te verlenen
read. - Selecteer Gegevenseditor in de vervolgkeuzelijst om
readenmodifyrechten toe te kennen op objecten in de catalogus. - Selecteer handmatig de bevoegdheden die u wilt verlenen.
- Selecteer Gegevenslezer in de vervolgkeuzelijst om bevoegdheden voor objecten in de catalogus te verlenen
- Klik op Toestaan.
Klik op Volgende.
Op de pagina Metagegevens geef je sleutel-waardeparen voor tags op. Zie Tags toepassen op beveiligbare objecten in Unity Catalog voor meer informatie.
(Optioneel) Voeg een opmerking toe.
Klik op Opslaan.
SQL
Voer de volgende opdracht uit in een notebook of de Sql-query-editor van Databricks.
CREATE CONNECTION <connection-name> TYPE mysql
OPTIONS (
host '<hostname>',
port '<port>',
user '<user>',
password '<password>'
);
We raden aan Azure Databricks secrets te gebruiken in plaats van gewone tekststrings voor gevoelige waarden, zoals inloggegevens. Voorbeeld:
CREATE CONNECTION <connection-name> TYPE mysql
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 van notebooks, vermijdt u het afkappen van de tekenreeks door speciale tekens te ontsnappen, zoals $ bij \. Voorbeeld: \$.
Zie Geheimbeheer voor 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 Databricks 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 machtigingen:CREATE CATALOG machtiging voor de metastore en eigendom van de verbinding of de CREATE FOREIGN CATALOG bevoegdheid voor de verbinding.
Catalogusverkenner
Klik in uw Azure Databricks-werkruimte op
Catalogus om Catalog Explorer te openen.
Klik bovenaan het deelvenster Catalogus op het pictogram
toevoegen 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.
Volg de instructies voor het maken van buitenlandse catalogi in Catalogussen maken.
SQL
Voer de volgende SQL-opdracht uit in een notebook of Databricks SQL-editor. 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.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>;
Ondersteunde pushdowns
De volgende pushdowns worden ondersteund voor alle berekeningen:
- Filteren
- Projecties
- Limiet
- Functies: gedeeltelijk, alleen voor filterexpressies. (Tekenreeksfuncties, wiskundige functies, datum-, tijd- en tijdstempelfuncties en andere diverse functies, zoals Alias, Cast, SortOrder)
De volgende pushdowns worden ondersteund in Databricks Runtime 13.3 LTS en hoger, en in SQL-warehouses:
- Aggregaties
- Booleaanse operators
- De volgende wiskundige functies (niet ondersteund als ANSI is uitgeschakeld): +, -, *, %, /
- Sorteren, bij gebruik met limiet
De volgende pushdowns worden niet ondersteund:
- Samenvoegingen
- Windows-functies
Toewijzingen van gegevenstypen
Wanneer u van MySQL naar Spark leest, worden gegevenstypen als volgt toegewezen:
| MySQL-type | Spark-type |
|---|---|
| bigint (indien niet ondertekend), decimaal | DecimaalType |
| tinyint*, int, integer, gemiddeldeint, smallint | IntegerType |
| tinyint(1) | Booleaans type |
| bigint (indien ondertekend) | LangType |
| zwevend | Drijftype |
| dubbel | DoubleType |
| char, enum, verzameling | Karaktertype |
| varchar | VarcharType |
| json, longtext, mediumtext, tekst, kleine tekst | Stringtype |
| binary, blob, varbinary, varchar binary | BinaireType |
| bit, Booleaanse waarde | Booleaans type |
| datum, jaar | Datumtype |
| datum/tijd, tijd, tijdstempel** | TimestampType/TimestampNTZType |
*
tinyint(1) signed en tinyint(1) unsigned worden behandeld als booleaanse waarde en geconverteerd naar BooleanType. Zie Connector-/J-naslaginformatie in de MySQL-documentatie.
** Wanneer u vanuit MySQL leest, wordt MySQL Timestamp toegewezen aan Spark TimestampType als preferTimestampNTZ = false (standaard). MySQL Timestamp is toegewezen aan TimestampNTZType if preferTimestampNTZ = true.