Partage via


Base de données IBM Db2

Résumé

Élément Description
État de mise en production Disponibilité générale
Produits Excel
Power BI (modèles sémantiques)
Power BI (Flux de données)
Fabric (Dataflow Gen2)
Power Apps (flux de données)
Dynamics 365 Customer Insights
Types d’authentification pris en charge Élémentaire
Base de données
Windows
Documentation de référence sur les fonctions Base de données DB2

Note

Certaines fonctionnalités peuvent être présentes dans un produit, mais pas d’autres en raison de planifications de déploiement et de fonctionnalités spécifiques à l’hôte.

Conditions préalables

Par défaut, le connecteur de base de données IBM Db2 utilise le pilote Microsoft pour se connecter à vos données. Si vous choisissez d’utiliser le pilote IBM dans les options avancées de Power Query Desktop, vous devez d’abord installer le pilote IBM Db2 pour .NET sur l’ordinateur utilisé pour se connecter aux données. Le nom de ce pilote change de temps en temps. Veillez donc à installer le pilote IBM Db2 qui fonctionne avec .NET. Pour obtenir des instructions sur le téléchargement, l’installation et la configuration du pilote IBM Db2 pour .NET, accédez à Télécharger les clients et pilotes de la version initiale 11.5. Plus d’informations : les limitations du pilote , Assurez-vous que le pilote IBM Db2 soit installé

Fonctionnalités prises en charge

  • Importer
  • DirectQuery (modèles sémantiques Power BI)
  • Options avancées
    • Pilote (IBM ou Microsoft)
    • Délai d’expiration de la commande en minutes
    • Collection de packages
    • Instruction SQL
    • Inclure des colonnes de relation
    • Naviguer à l’aide de la hiérarchie complète

Se connecter à une base de données IBM Db2 à partir de Power Query Desktop

Pour établir la connexion, procédez comme suit :

  1. Sélectionnez l’option base de données IBM Db2 dans Obtenir des données.

  2. Spécifiez le serveur IBM Db2 auquel se connecter dans Server. Si un port est requis, spécifiez-le à l’aide du format ServerName :Port, où port est le numéro de port. Entrez également la base de données IBM Db2 que vous souhaitez accéder dans Database. Dans cet exemple, le nom et le port du serveur sont TestIBMDb2server.contoso.com:4000 et la base de données IBM Db2 accessible est NORTHWD2.

    Entrer la connexion de base de données IBM Db2.

  3. Si vous vous connectez à partir de Power BI Desktop, sélectionnez le mode de connectivité des données Importer ou DirectQuery. Le reste de ces exemples d’étapes utilisent le mode de connectivité des données d’importation. Pour en savoir plus sur DirectQuery, accédez à Utiliser DirectQuery dans Power BI Desktop.

    Note

    Par défaut, la boîte de dialogue base de données IBM Db2 utilise le pilote Microsoft lors de la connexion. Si vous souhaitez utiliser le pilote IBM, ouvrez options avancées et sélectionnez IBM. Plus d’informations : Se connecter à l’aide d’options avancées

    Si vous sélectionnez DirectQuery comme mode de connectivité des données, l’instruction SQL dans les options avancées est désactivée. Actuellement, DirectQuery ne prend pas en charge la requête push vers le bas au-dessus d’une requête de base de données native pour le connecteur IBM Db2.

  4. Sélectionnez OK.

  5. Si c’est la première fois que vous vous connectez à cette base de données IBM Db2, sélectionnez le type d’authentification que vous souhaitez utiliser, entrez vos informations d’identification, puis sélectionnez Connect. Pour plus d’informations sur l’authentification, accédez à Authentification avec une source de données.

    Entrez vos informations d’identification de base de données IBM Db2.

    Par défaut, Power Query tente de se connecter à la base de données IBM Db2 à l’aide d’une connexion chiffrée. Si Power Query ne peut pas se connecter à l’aide d’une connexion chiffrée, une boîte de dialogue « Impossible de se connecter » s’affiche. Pour vous connecter à l’aide d’une connexion non chiffrée, sélectionnez OK.

    Boîte de dialogue Impossible de se connecter

  6. Dans navigateur, sélectionnez les données dont vous avez besoin, puis sélectionnez Charger pour charger les données ou transformer des données pour transformer les données.

    Sélectionner les données dont vous avez besoin à partir de la base de données

Se connecter à une base de données IBM Db2 à partir de Power Query Online

Pour établir la connexion, procédez comme suit :

  1. Sélectionnez l'option base de données IBM Db2 dans la page Power Query - Connexion à la source de données.

  2. Spécifiez le serveur IBM Db2 auquel se connecter dans Server. Si un port est requis, spécifiez-le à l’aide du format ServerName :Port, où port est le numéro de port. Entrez également la base de données IBM Db2 que vous souhaitez accéder dans Database. Dans cet exemple, le nom et le port du serveur sont TestIBMDb2server.contoso.com:4000 et la base de données IBM Db2 accessible est NORTHWD2

  3. Sélectionnez le nom de votre passerelle de données locale.

    Note

    Vous devez sélectionner une passerelle de données locale pour ce connecteur, que la base de données IBM Db2 se trouve sur votre réseau local ou en ligne.

  4. Si c’est la première fois que vous vous connectez à cette base de données IBM Db2, sélectionnez le type d’informations d’identification de la connexion dans type d’authentification. Choisissez de base si vous envisagez d’utiliser un compte créé dans la base de données IBM Db2 au lieu de l’authentification Windows.

  5. Entrez vos informations d’identification.

  6. Sélectionnez Utiliser une connexion chiffrée si vous souhaitez utiliser une connexion chiffrée, ou désactivez l’option si vous souhaitez utiliser une connexion non chiffrée.

    Entrer la connexion en ligne de la base de données IBM Db2.

  7. Sélectionnez Suivant pour continuer.

  8. Dans navigateur, sélectionnez les données dont vous avez besoin, puis sélectionnez Transformer des données pour transformer les données dans l’éditeur Power Query.

    Sélectionner les données que vous souhaitez transformer dans le navigateur

Se connecter à l’aide d’options avancées

Power Query fournit un ensemble d’options avancées que vous pouvez ajouter à votre requête si nécessaire.

options avancées incluses dans la boîte de dialogue connexion à la base de données IBM Db2.

Le tableau suivant répertorie toutes les options avancées que vous pouvez définir dans Power Query.

Option avancée Description
Chauffeur Détermine le pilote utilisé pour se connecter à votre base de données IBM Db2. Les choix sont IBM et Windows (par défaut). Si vous sélectionnez le pilote IBM, vous devez d’abord vous assurer que le pilote IBM Db2 pour .NET est installé sur votre ordinateur. Cette option est disponible uniquement dans Power Query Desktop. Plus d’informations : Vérifier que le pilote IBM Db2 est installé
Délai d’expiration de la commande en minutes Si votre connexion dure plus de 10 minutes (délai d’expiration par défaut), vous pouvez entrer une autre valeur en minutes pour que la connexion reste ouverte plus longtemps.
Collection de packages Spécifie où rechercher des packages. Les packages sont des structures de contrôle utilisées par Db2 lors du traitement d’une instruction SQL et sont automatiquement créées si nécessaire. Par défaut, cette option utilise la valeur NULLID. Disponible uniquement lors de l’utilisation du pilote Microsoft. Plus d’informations : packages DB2 : Concepts, exemples et problèmes courants
Instruction SQL Pour plus d’informations, accédez à Importer des données à partir d’une base de données à l’aide de la requête de base de données native.
Inclure des colonnes de relation Si cette option est cochée, inclut des colonnes qui peuvent avoir des relations avec d’autres tables. Si cette zone est désactivée, vous ne verrez pas ces colonnes.
Naviguer à l’aide de la hiérarchie complète Si cette option est cochée, le navigateur affiche la hiérarchie complète des tables dans la base de données à laquelle vous vous connectez. S’il est effacé, le navigateur affiche uniquement les tables dont les colonnes et les lignes contiennent des données.

Une fois que vous avez sélectionné les options avancées dont vous avez besoin, sélectionnez OK dans Power Query Desktop ou Prochain dans Power Query Online pour vous connecter à votre base de données IBM Db2.

Problèmes et limitations

Limitations du pilote

Le pilote Microsoft est le même que celui utilisé dans Microsoft Host Integration Server, appelé « fournisseur ADO.NET pour DB2 ». Le pilote IBM est le pilote IBM Db/2 qui fonctionne avec .NET. Le nom de ce pilote change de temps en temps. Assurez-vous qu’il s’agit de celui qui fonctionne avec .NET, qui est différent des pilotes IBM Db2 qui fonctionnent avec OLE/DB, ODBC ou JDBC.

Vous pouvez choisir d’utiliser le pilote Microsoft (par défaut) ou le pilote IBM si vous utilisez Power Query Desktop. Actuellement, Power Query Online utilise uniquement le pilote Microsoft. Chaque pilote a ses limitations.

  • Pilote Microsoft
    • Prend en charge uniquement TLS (Transport Layer Security) à partir de la version de décembre 2024 de Power BI Desktop ou ultérieure.
  • Pilote IBM
    • Le connecteur de base de données IBM Db2, lors de l’utilisation du pilote IBM Db2 pour .NET, ne fonctionne pas avec les systèmes Mainframe ou IBM i
    • Ne prend pas en charge DirectQuery

Microsoft prend en charge le pilote Microsoft, mais pas le pilote IBM. Toutefois, si votre service informatique a déjà installé et configuré cela sur vos machines, votre service informatique doit savoir comment dépanner le pilote IBM.

Requêtes natives non prises en charge dans DirectQuery

Lorsque vous sélectionnez DirectQuery comme mode de connectivité des données dans Power Query Desktop, la zone de texte de l’instruction SQL dans les options avancées est désactivée. Elle est désactivée, car le connecteur IBM Db2 Power Query ne prend actuellement pas en charge la transmission push de requêtes au-dessus d’une requête de base de données native.

Dépannage

Vérifiez que le pilote IBM Db2 est installé

Si vous choisissez d’utiliser le pilote IBM Db2 pour Power Query Desktop, vous devez d’abord télécharger, installer et configurer le pilote sur votre ordinateur. Pour vous assurer que le pilote IBM Db2 a été installé :

  1. Ouvrez Windows PowerShell sur votre ordinateur.

  2. Entrez la commande suivante :

    [System.Data.Common.DbProviderFactories]::GetFactoryClasses() | ogv

  3. Dans la boîte de dialogue qui s’ouvre, vous devez voir le nom suivant dans la colonne InvariantName :

    IBM.Data.DB2

Si ce nom se trouve dans la colonne InvariantName, le pilote IBM Db2 a été installé et configuré correctement.

Codes d’erreur sqlCODE -805 et SQLCODE -551

Lorsque vous tentez de vous connecter à une base de données IBM Db2, vous pouvez parfois rencontrer l’erreur COURANTE SQLCODE -805, ce qui indique que le package n’est pas trouvé dans la NULLID ou une autre collection (spécifiée dans la connexion de package Power Query configuration). Vous pouvez également rencontrer l’erreur courante SQLCODE -551, ce qui indique que vous ne pouvez pas créer de packages, car vous n’avez pas d’autorité de liaison de package.

En règle générale, SQLCODE -805 est suivi de SQLCODE -551, mais vous verrez uniquement la deuxième exception. En réalité, le problème est le même. Vous n’êtes pas autorisé à lier le package à NULLID ou à la collection spécifiée.

En règle générale, la plupart des administrateurs IBM Db2 ne fournissent pas d’autorité de package de liaison aux utilisateurs finaux, en particulier dans un environnement IBM z/OS (mainframe) ou IBM i (AS/400). Db2 sur Linux, Unix ou Windows est différent dans les comptes d’utilisateur qui ont des privilèges de liaison par défaut, ce qui crée le package MSCS001 (Cursor Stability) dans la propre collection de l’utilisateur (nom = nom de connexion utilisateur).

Si vous n’avez pas les privilèges pour lier des paquets, vous devez demander à votre administrateur Db2 d’obtenir l’autorité de liaison de paquets. Avec cette autorité de liaison du package, connectez-vous à la base de données et extrayez les données, le package sera créé automatiquement. Ensuite, l’administrateur peut révoquer l’autorité de liaison de paquets. En outre, par la suite, l’administrateur peut « copier-lier » le paquet à d’autres collections pour accroître la simultanéité, mieux respecter vos normes internes quant à l'emplacement où les paquets sont liés, et ainsi de suite.

Lors de la connexion à IBM Db2 pour z/OS, l’administrateur Db2 peut effectuer les étapes suivantes.

  1. Accordez l’autorité pour lier un nouveau package à l’utilisateur avec l’une des commandes suivantes :

    • GRANT BINDADD ON SYSTEM TO <authorization_name>
    • GRANT PACKADM ON <collection_name> TO <authorization_name>
  2. À l’aide de Power Query, connectez-vous à la base de données IBM Db2 et récupérez une liste de schémas, de tables et de vues. Le connecteur de base de données IBM Db2 Power Query créera automatiquement le package NULLID.MSCS001, puis accordera l’exécution sur le package au public.

  3. Révoquez l’autorité pour lier un nouveau package à l’utilisateur avec l’une des commandes suivantes :

    • REVOKE BINDADD FROM <authorization_name>
    • REVOKE PACKADM ON <collection_name> FROM <authorization_name>

Lors de la connexion à IBM Db2 pour Linux, Unix ou Windows, l’administrateur Db2 peut effectuer les étapes suivantes.

  1. GRANT BINDADD ON DATABASE TO USER <authorization_name>.

  2. À l’aide de Power Query, connectez-vous à la base de données IBM Db2 et récupérez une liste de schémas, de tables et de vues. Le connecteur IBM Db2 Power Query crée automatiquement le NULLID du paquet. MSCS001, puis accordera l’exécution sur le paquet au public.

  3. REVOKE BINDADD ON DATABASE FROM USER <authorization_name>.

  4. GRANT EXECUTE ON PACKAGE <collection.package> TO USER <authorization_name>.

Lors de la connexion à IBM Db2 pour i, l’administrateur Db2 peut effectuer les étapes suivantes.

  1. WRKOBJ QSYS/CRTSQLPKG. Tapez « 2 » pour modifier l’autorité de l’objet.

  2. Modifiez l’autorité de *EXCLUDE vers PUBLIC ou <authorization_name>.

  3. Ensuite, remplacez l’autorité par *EXCLUDE.

Code d’erreur sqlCODE -360

Lorsque vous tentez de vous connecter à la base de données IBM Db2, vous pouvez rencontrer l’erreur suivante :

Microsoft Db2 Client: The host resource could not be found. Check that the Initial Catalog value matches the host resource name. SQLSTATE=HY000 SQLCODE=-360

Ce message d’erreur indique que vous n’avez pas placé la valeur appropriée pour le nom de la base de données.

Code d’erreur sqlCODE -1336

The specified host could not be found.

Vérifiez le nom et vérifiez que l’hôte est accessible. Par exemple, utilisez ping dans une invite de commandes pour tenter d’atteindre le serveur et vérifier que l’adresse IP est correcte ou utilisez telnet pour communiquer avec le serveur.

Code d’erreur sqlCODE -1037

Host is reachable, but is not responding on the specified port.

Le port est spécifié à la fin du nom du serveur, séparé par un signe deux-points. S’il est omis, la valeur par défaut de 5 0000 est utilisée.

Pour rechercher le port Db2 est utilisé pour Linux, Unix et Windows, exécutez cette commande :

db2 get dbm cfg | findstr SVCENAME

Recherchez dans la sortie une entrée pour SVCENAME (et SSL_SVCENAME pour les connexions chiffrées TLS). Si cette valeur est un nombre, il s’agit du port. Sinon, comparez la valeur avec la table « services » du système. Vous pouvez généralement le trouver à l’adresse /etc/services, ou à c :\windows\system32\drivers\etc\services pour Windows.

La capture d’écran suivante montre la sortie de cette commande dans Linux/Unix.

Image avec sortie de la commande db2 dans Linux et Unix

La capture d’écran suivante montre la sortie de cette commande dans Windows.

image avec sortie de la commande db2 dans Windows

Déterminer le nom de la base de données

Pour déterminer le nom de la base de données à utiliser :

  1. Sur IBM i, exécutez DSPRDBDIRE.

    Image montrant le résultat de l'Affichage des Entrées du Répertoire de Bases de Données relationnelles

  2. L’une des entrées aura un emplacement distant de *LOCAL. Cette entrée est celle à utiliser.

Déterminer le numéro de port

Le pilote Microsoft se connecte à la base de données à l’aide du protocole DRDA (Distributed Relational Database Architecture). Le port par défaut pour DRDA est le port 446. Essayez d’abord cette valeur.

Pour rechercher le port sur lequel le service DRDA s’exécute :

  1. Exécutez la commande IBM i WRKSRVTBLE.

  2. Faites défiler vers le bas jusqu’à ce que vous trouviez les entrées pour DRDA.

    Entrées de la table de service Entrées de la table de service

  3. Pour confirmer que le service DRDA est en fonctionnement et à l'écoute de ce port, exécutez NETSTAT.

    Écoute DRDA

  4. Choisissez l’option 3 (pour IPv4) ou l’option 6 (pour IPv6).

  5. Appuyez sur F14 pour afficher les numéros de port au lieu des noms, puis faites défiler jusqu’à ce que vous voyiez le port en question. Elle doit avoir une entrée avec l’état « Écouter ».

    état de la connexion IP

Plus d’informations