Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cette page explique comment configurer Lakehouse Federation pour exécuter des requêtes fédérées sur des données SQL Server qui ne sont pas gérées par Azure Databricks. Pour en savoir plus sur lakehouse Federation, consultez Qu’est-ce que la Fédération Lakehouse ?
Pour vous connecter à votre base de données SQL Server à l’aide de Lakehouse Federation, vous devez créer les éléments suivants dans votre metastore Du catalogue Azure Databricks Unity :
- Une connexion à votre base de données SQL Server.
- Catalogue étranger qui met en miroir votre base de données SQL Server dans le catalogue Unity afin de pouvoir utiliser la syntaxe de requête du catalogue Unity et les outils de gouvernance des données pour gérer l’accès utilisateur Azure Databricks à la base de données.
Lakehouse Federation prend en charge SQL Server, Azure SQL Database et Azure SQL Managed Instance.
Avant de commencer
Conditions requises pour l’espace de travail :
- Espace de travail activé pour Unity Catalog.
Voici les exigences de calcul à respecter :
- Connectivité réseau de votre ressource de calcul aux systèmes de base de données cibles. Consultez Recommandations de mise en réseau de la Fédération Lakehouse.
- Le calcul Azure Databricks doit utiliser Databricks Runtime 13.3 LTS ou ultérieur et le mode d’accès Standard ou Dédié .
- Les entrepôts SQL doivent être pro ou serverless et doivent utiliser la version 2023.40 ou ultérieure.
Autorisations requises :
- Pour créer une connexion, vous devez être un administrateur de metastore ou un utilisateur disposant du privilège
CREATE CONNECTIONsur le metastore Unity Catalog attaché à l’espace de travail. - Pour créer un catalogue étranger, vous devez disposer de l’autorisation
CREATE CATALOGsur le metastore et être le propriétaire de la connexion ou disposer du privilègeCREATE FOREIGN CATALOGsur la connexion.
D'autres exigences en matière d’autorisation sont spécifiées dans les sections basées sur les tâches ci-dessous.
- Si vous envisagez de vous authentifier auprès de SQL Server à l’aide de l’ID Microsoft Entra, effectuez l’installation dans Configurer l’ID Microsoft Entra pour la fédération SQL Server.
Créer une connexion
Une connexion spécifie un chemin d’accès et des informations d’identification pour accéder à un système de base de données externe. Pour créer une connexion, vous pouvez utiliser l’Explorateur de catalogues ou la commande SQL CREATE CONNECTION dans un notebook Azure Databricks ou l’éditeur de requête SQL Databricks.
Note
Vous pouvez aussi utiliser l’API REST Databricks ou l’interface CLI Databricks pour créer une connexion. Consultez POST /api/2.1/unity-catalog/connections et Commandes Unity Catalog.
Autorisations requises : administrateur du metastore ou utilisateur disposant du privilège CREATE CONNECTION.
Explorateur de catalogues
Dans votre espace de travail Azure Databricks, cliquez sur
Catalogue.
En haut du volet Catalogue, cliquez sur l’icône
Ajouter, puis sélectionnez Ajouter une connexion dans le menu.Sinon, dans la page Accès rapide , cliquez sur le bouton Données externes , accédez à l’onglet Connexions , puis cliquez sur Créer une connexion.
Dans la page de Informations de base de connexion de l’assistant Configurer la connexion, entrez un Nom de connexion convivial.
Sélectionnez un type de connexion de SQL Server.
Sélectionnez un type d’authentification comme un OAuth, OAuth Machine to Machine, ou un nom d'utilisateur et mot de passe (authentification de base).
(Facultatif) Ajoutez un commentaire.
Cliquez sur Suivant.
Dans la page Authentification, entrez les propriétés de connexion suivantes pour votre instance SQL Server. Les propriétés spécifiques à la méthode d’authentification que vous avez sélectionnée sont précédées de la
Auth typeentre parenthèses.- Host (Hôte) : votre serveur SQL.
- (Authentification de base) Port
- (Authentification de base) trustServerCertificate : par défaut, la valeur est
false. Lorsque la valeur est définietrue, la couche de transport utilise SSL pour chiffrer le canal et contourner la chaîne de certificats pour valider l’approbation. Laissez ce paramètre défini sur la valeur par défaut, sauf si vous avez un besoin spécifique de contourner la validation d’approbation. - (Authentification de base) Utilisateur
- (Authentification de base) Mot de passe
- (OAuth) Entrez les détails de connexion que vous avez collectés dans Configurer l’ID Microsoft Entra pour la fédération SQL Server.
Cliquez sur Créer une connexion.
(Authentification de base) Dans la page Détails de connexion, spécifiez les éléments suivants :
- certificat de serveur d’approbation: cette option est désélectionnée par défaut. Quand elle est sélectionnée, la couche de transport utilise SSL pour chiffrer le canal et contourner la chaîne de certificats pour valider l’approbation. Laissez ce paramètre défini sur la valeur par défaut, sauf si vous avez un besoin spécifique de contourner la validation d’approbation.
- intention d’application: type de charge de travail d’application lors de la connexion à un serveur.
Cliquez sur Suivant.
Sur la pageConcepts de base du catalogue, saisissez un nom pour le catalogue étranger. Un catalogue étranger reflète une base de données dans un système de données externe afin que vous puissiez interroger et gérer l’accès aux données de cette base de données à l’aide d’Azure Databricks et Unity Catalog.
Cliquez sur Créer un catalogue.
Dans la page Access, sélectionnez les espaces de travail dans lesquels les utilisateurs peuvent accéder au catalogue que vous avez créé. Vous pouvez sélectionner Tous les espaces de travail ont accès, ou cliquer sur Affecter aux espaces de travail, sélectionner les espaces de travail, puis cliquer sur Attribuer.
Changez le propriétaire qui pourra gérer l'accès à tous les objets du catalogue. Commencez à taper un responsable dans la zone de texte, puis cliquez sur le responsable dans les résultats affichés.
Accordez des privilèges sur le catalogue. Cliquez sur Octroyer :
- Spécifiez les Principaux qui auront accès aux objets du catalogue. Commencez à taper un responsable dans la zone de texte, puis cliquez sur le responsable dans les résultats affichés.
- Sélectionnez les Préréglages de privilège à accorder pour chaque principal. Tous les utilisateurs de compte reçoivent
BROWSEpar défaut.- Sélectionnez Lecteur de données dans le menu déroulant pour accorder des privilèges
readaux les objets du catalogue. - Sélectionnez Éditeur de données dans le menu déroulant pour accorder
readetmodifyprivilèges sur les objets du catalogue. - Sélectionnez manuellement les privilèges à accorder.
- Sélectionnez Lecteur de données dans le menu déroulant pour accorder des privilèges
- Cliquez sur Accorder.
Cliquez sur Suivant.
Sur la page Métadonnées, indiquez des paires clé-valeur pour les balises. Pour plus d’informations, consultez Appliquer des étiquettes aux objets sécurisables du catalogue Unity.
(Facultatif) Ajoutez un commentaire.
Cliquez sur Enregistrer.
Note
(OAuth) Le point de terminaison OAuth d’Azure Entra ID doit être accessible depuis les adresses IP du plan de contrôle Azure Databricks. Voir les régions Azure Databricks.
SQL
Exécutez la commande suivante dans un notebook ou dans l’éditeur de requête SQL Databricks.
CREATE CONNECTION <connection-name> TYPE sqlserver
OPTIONS (
host '<hostname>',
port '<port>',
user '<user>',
password '<password>'
);
Nous vous recommandons d’utiliser des secrets Azure Databricks au lieu de chaînes de texte en clair pour les données sensibles comme les informations d’identification. Par exemple:
CREATE CONNECTION <connection-name> TYPE sqlserver
OPTIONS (
host '<hostname>',
port '<port>',
user secret ('<secret-scope>','<secret-key-user>'),
password secret ('<secret-scope>','<secret-key-password>')
)
Pour plus d’informations sur la définition de secrets, consultez Gestion des secrets.
Créer un catalogue étranger
Note
Si vous utilisez l’interface utilisateur pour créer une connexion à la source de données, la création du catalogue étranger est incluse et vous pouvez ignorer cette étape.
Un catalogue étranger reflète une base de données dans un système de données externe afin que vous puissiez interroger et gérer l’accès aux données de cette base de données à l’aide d’Azure Databricks et Unity Catalog. Pour créer un catalogue étranger, vous utilisez une connexion à la source de données qui a déjà été définie.
Pour créer un catalogue étranger, vous pouvez utiliser l’Explorateur de catalogues ou la commande CREATE FOREIGN CATALOG SQL dans un notebook Azure Databricks ou l’éditeur de requête SQL. Vous pouvez également utiliser l’API REST Databricks ou l’interface CLI Databricks pour créer un catalogue. Consultez POST /api/2.1/unity-catalog/catalogs et les commandes du catalogue Unity.
Autorisations requises :CREATE CATALOG autorisation sur le meta store et propriété de la connexion, ou bien privilège CREATE FOREIGN CATALOG sur la connexion.
Explorateur de catalogues
Dans votre espace de travail Azure Databricks, cliquez sur
Catalogue pour ouvrir l’Explorateur de catalogues.
En haut du volet Catalogue, cliquez sur l’icône
Ajouter, puis, dans le menu, sélectionnez Ajouter un catalogue.Vous pouvez également accéder à Accès rapide. Cliquez ensuite sur le bouton Catalogues, puis sur Créer un catalogue.
Suivez les instructions pour créer des catalogues étrangers dans Créer des catalogues.
SQL
Exécutez la commande SQL suivante dans un notebook ou dans l’éditeur de requêtes SQL. Les éléments entre crochets sont optionnels. Remplacez les valeurs d’espace réservé :
-
<catalog-name>: nom du catalogue dans Azure Databricks. -
<connection-name>: L'objet Connection qui indique la source de données, le chemin et les informations d’identification d’accès. -
<database-name>: nom de la base de données que vous souhaitez refléter en tant que catalogue dans Azure Databricks.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (database '<database-name>');
Pushdowns pris en charge
Les pushdowns suivants sont pris en charge sur tous les calculs :
- Filters
- Projections
- Limit
- Fonctions : partielles, uniquement pour les expressions de filtre. (Fonctions de chaîne, fonctions mathématiques, fonctions de données, de temps et d’horodatage, et autres fonctions diverses telles que Alias, Cast, SortOrder)
Les opérations de pushdown suivantes sont prises en charge à partir de Databricks Runtime 13.3 LTS et sur les calculs de SQL warehouse :
- Aggregates
- Les opérateurs booléens suivants : =, <, <=, >, >=, <=>
- Les fonctions mathématiques suivantes (non prises en charge si ANSI est désactivée) : +, -, *, %, /
- Les opérateurs divers suivants : ^, |, \~
- Tri, lorsque l’utilisation est limitée
Les pushdowns suivants ne sont pas prises en charge :
- Joins
- Fonctions Windows
Mappages de types de données
Lorsque vous lisez des données de SQL Server vers Spark, les types de données sont mappés comme suit :
| Type SQL Server | Type Spark |
|---|---|
| bigint (non signé), décimal, monnaie, numérique, petite monnaie | DecimalType |
| smallint, tinyint | ShortType |
| int | IntegerType |
| bigint (si signé) | LongType |
| real | FloatType |
| float | DoubleType |
| char, nchar, uniqueidentifier | CharType |
| nvarchar, varchar | VarcharType |
| texte, xml | StringType |
| binaire, géographie, géométrie, image, timestamp, udt, varbinary | BinaryType |
| bit | BooleanType |
| date | DateType |
| datetime (date et heure), datetime (date et heure), smalldatetime (petit date et heure), time (temps) | TimestampType/TimestampNTZType |
*Lorsque vous lisez à partir de SQL Server, les SQL Server datetimes sont mappés sur les Spark TimestampType si preferTimestampNTZ = false (valeur par défaut). Les SQL Server datetimes sont mappés sur TimestampNTZType si preferTimestampNTZ = true.