Freigeben über


IBM Db2-Datenbank

Zusammenfassung

Element Beschreibung
Releasestatus Allgemeine Verfügbarkeit
Produkte Excel
Power BI (Semantikmodelle)
Power BI (Datenflüsse)
Fabric (Dataflow Gen2)
Power Apps (Datenflüsse)
Dynamics 365 Customer Insights
Unterstützte Authentifizierungstypen Basic
Datenbank
Windows
Referenzdokumentation zur Funktion DB2.Database

Anmerkung

Einige Funktionen sind möglicherweise in einem Produkt vorhanden, aber nicht in anderen, aufgrund von Bereitstellungszeitplänen und hostspezifischen Fähigkeiten.

Voraussetzungen

Standardmäßig verwendet der IBM Db2-Datenbankconnector den Microsoft-Treiber, um eine Verbindung mit Ihren Daten herzustellen. Wenn Sie den IBM-Treiber in den erweiterten Optionen in Power Query Desktop verwenden möchten, müssen Sie zuerst den IBM Db2-Treiber für .NET auf dem Computer installieren, der zum Herstellen einer Verbindung mit den Daten verwendet wird. Der Name dieses Treibers ändert sich von Zeit zu Zeit. Installieren Sie daher unbedingt den IBM Db2-Treiber, der mit .NET funktioniert. Anweisungen zum Herunterladen, Installieren und Konfigurieren des IBM Db2-Treibers für .NET finden Sie unter Download anfänglicher Clients und Treiber der Version 11.5. Weitere Informationen: Treiberbeschränkungen, Stellen Sie sicher, dass der IBM Db2-Treiber installiert ist

Unterstützte Funktionen

  • Importieren
  • DirectQuery (Power BI-Semantikmodelle)
  • Erweiterte Optionen
    • Treiber (IBM oder Microsoft)
    • Befehlstimeout in Minuten
    • Paketauflistung
    • SQL-Anweisung
    • Beziehungsspalten einbeziehen
    • Navigieren mithilfe der vollständigen Hierarchie

Herstellen einer Verbindung mit einer IBM Db2-Datenbank über Power Query Desktop

Führen Sie die folgenden Schritte aus, um die Verbindung herzustellen:

  1. Wählen Sie unter Daten abrufen die Option IBM Db2-Datenbank aus.

  2. Geben Sie den IBM Db2-Server an, zu dem in Servereine Verbindung hergestellt werden soll. Wenn ein Port erforderlich ist, geben Sie ihn mithilfe des Formats ServerName:Portan, wobei Port die Portnummer ist. Geben Sie auch die IBM Db2-Datenbank ein, auf die Sie in Databasezugreifen möchten. In diesem Beispiel sind der Servername und der Port TestIBMDb2server.contoso.com:4000 und die zugegriffene IBM Db2-Datenbank ist NORTHWD2.

    Screenshot des Ibm Db2-Datenbankverbindungsdialogfelds, in dem Sie Ihre Verbindungsinformationen eingeben.

  3. Wenn Sie eine Verbindung über Power BI Desktop herstellen, wählen Sie entweder den Datenverbindungsmodus Import oder DirectQuery aus. In den restlichen Beispielschritten wird der Importdatenkonnektivitätsmodus verwendet. Weitere Informationen zu DirectQuery finden Sie unter Verwenden von DirectQuery in Power BI Desktop.

    Anmerkung

    Standardmäßig verwendet das Ibm Db2-Datenbankdialogfeld den Microsoft-Treiber bei der Anmeldung. Wenn Sie den IBM-Treiber verwenden möchten, öffnen Sie Advanced-Optionen, und wählen Sie IBMaus. Weitere Informationen finden Sie unter "Verbinden mit erweiterten Optionen".

    Wenn Sie DirectQuery als Datenkonnektivitätsmodus auswählen, ist die SQL-Anweisung in den erweiterten Optionen deaktiviert. DirectQuery unterstützt derzeit keine Pushdown-Abfrage auf einer einheimischen Datenbankabfrage für den IBM Db2 Connector.

  4. Wählen Sie OKaus.

  5. Wenn Sie zum ersten Mal eine Verbindung mit dieser IBM Db2-Datenbank herstellen, wählen Sie den Authentifizierungstyp aus, den Sie verwenden möchten, geben Sie Ihre Anmeldeinformationen ein, und wählen Sie dann "Verbinden" aus. Weitere Informationen zur Authentifizierung finden Sie unter Authentifizierung mit einer Datenquelle.

    Screenshot des Authentifizierungsdialogfelds, in dem Sie Ihre IBM Db2-Datenbankanmeldeinformationen eingeben.

    Power Query versucht standardmäßig, mithilfe einer verschlüsselten Verbindung eine Verbindung mit der IBM Db2-Datenbank herzustellen. Wenn Power Query keine Verbindung mit einer verschlüsselten Verbindung herstellen kann, wird ein Dialogfeld "Keine Verbindung herstellen" angezeigt. Wenn Sie eine Verbindung mit einer unverschlüsselten Verbindung herstellen möchten, wählen Sie OKaus.

    Screenshot der Verschlüsselungsunterstützungsnachricht, in der Sie sich für die Verwendung einer unverschlüsselten Verbindung entscheiden können.

  6. Wählen Sie in Navigator die gewünschten Daten aus, und wählen Sie dann entweder Laden oder Daten transformieren aus, um die Daten zu laden oder zu transformieren.

    Screenshot des Navigators, in dem Sie die daten auswählen, die Sie aus der Datenbank benötigen.

Verbindung zu einer IBM Db2-Datenbank mit Power Query Online herstellen

Führen Sie die folgenden Schritte aus, um die Verbindung herzustellen:

  1. Wählen Sie auf der Seite Power Query – Mit Datenquelle verbinden die Option IBM Db2-Datenbank aus.

  2. Geben Sie den IBM Db2-Server an, zu dem in Servereine Verbindung hergestellt werden soll. Wenn ein Port erforderlich ist, geben Sie ihn mithilfe des Formats ServerName:Portan, wobei Port die Portnummer ist. Geben Sie auch die IBM Db2-Datenbank ein, auf die Sie in Databasezugreifen möchten. In diesem Beispiel sind der Servername und der Port TestIBMDb2server.contoso.com:4000 und die zugegriffene IBM Db2-Datenbank ist NORTHWD2

  3. Wählen Sie den Namen Ihres lokalen Datengateways aus.

    Anmerkung

    Sie müssen ein lokales Datengateway für diesen Connector auswählen, unabhängig davon, ob sich die IBM Db2-Datenbank in Ihrem lokalen Netzwerk oder online befindet.

  4. Wenn Sie zum ersten Mal eine Verbindung mit dieser IBM Db2-Datenbank herstellen, wählen Sie den Typ der Anmeldeinformationen für die Verbindung in Authentifizierungsart aus. Wählen Sie "Basic" aus, wenn Sie ein konto verwenden möchten, das in der IBM Db2-Datenbank anstelle der Windows-Authentifizierung erstellt wurde.

  5. Geben Sie Ihre Anmeldeinformationen ein.

  6. Wählen Sie Verschlüsselte Verbindung verwenden aus, wenn Sie eine verschlüsselte Verbindung verwenden möchten, oder deaktivieren Sie die Option, wenn Sie eine unverschlüsselte Verbindung verwenden möchten.

    Screenshot der Onlineverbindungseinstellungen der IBM Db2-Datenbank mit den eingegebenen erforderlichen Einstellungen.

  7. Wählen Sie Weiter aus, um fortzufahren.

  8. Wählen Sie in Navigator die benötigten Daten und dann Daten transformieren aus, um die Daten im Power Query-Editor zu transformieren.

    Screenshot des Onlinenavigators, in dem Sie die Daten auswählen, die Sie transformieren möchten.

Herstellen einer Verbindung mit erweiterten Optionen

Power Query bietet bei Bedarf eine Reihe erweiterter Optionen, die Sie Ihrer Abfrage hinzufügen können.

Screenshot der erweiterten Optionen, die im Ibm Db2-Datenbankverbindungsdialogfeld enthalten sind.

In der folgenden Tabelle sind alle erweiterten Optionen aufgeführt, die Sie in Power Query festlegen können.

Erweiterte Option Beschreibung
Fahrer Bestimmt, welcher Treiber für die Verbindung mit Ihrer IBM Db2-Datenbank verwendet wird. Die Auswahlmöglichkeiten sind IBM und Windows (Standard). Wenn Sie den IBM-Treiber auswählen, müssen Sie zuerst sicherstellen, dass der IBM Db2-Treiber für .NET auf Ihrem Computer installiert ist. Diese Option ist nur in Power Query Desktop verfügbar. Weitere Informationen: Stellen Sie sicher, dass der IBM Db2-Treiber installiert ist.
Befehlstimeout in Minuten Wenn Ihre Verbindung länger als 10 Minuten dauert (das Standardtimeout), können Sie einen anderen Wert in Minuten eingeben, um die Verbindung länger geöffnet zu halten.
Paketauflistung Gibt an, wo nach Paketen gesucht werden soll. Pakete sind Kontrollstrukturen, die von Db2 bei der Verarbeitung einer SQL-Anweisung verwendet werden und bei Bedarf automatisch erstellt werden. Standardmäßig verwendet diese Option den Wert NULLID. Nur verfügbar, wenn Sie den Microsoft-Treiber verwenden. Weitere Informationen: DB2-Pakete: Konzepte, Beispiele und häufige Probleme
SQL-Anweisung Informationen hierzu erhalten Sie unter Importieren von Daten aus einer Datenbank mithilfe der native Datenbankabfrage.
Beziehungsspalten einbeziehen Wenn aktiviert, enthält die Option Spalten, die möglicherweise Beziehungen zu anderen Tabellen haben. Wenn dieses Feld deaktiviert ist, werden diese Spalten nicht angezeigt.
Navigieren mithilfe der vollständigen Hierarchie Wenn diese Option aktiviert ist, zeigt der Navigator die vollständige Hierarchie von Tabellen in der Datenbank an, mit der Sie eine Verbindung herstellen. Wenn deaktiviert, zeigt der Navigator nur die Tabellen an, deren Spalten und Zeilen Daten enthalten.

Nachdem Sie die erweiterten Optionen ausgewählt haben, die Sie benötigen, wählen Sie "OK " in Power Query Desktop oder "Weiter " in Power Query Online aus, um eine Verbindung mit Ihrer IBM Db2-Datenbank herzustellen.

Probleme und Einschränkungen

Treiberbeschränkungen

Der Microsoft-Treiber ist derselbe, der in Microsoft Host Integration Server verwendet wird, der als "ADO.NET Anbieter für DB2" bezeichnet wird. Der IBM-Treiber ist der IBM Db/2-Treiber, der mit .NET arbeitet. Der Name dieses Treibers ändert sich von Zeit zu Zeit. Stellen Sie also sicher, dass es sich um den handelt, der mit .NET funktioniert, da er sich von den IBM Db2-Treibern unterscheidet, die mit OLE/DB, ODBC oder JDBC arbeiten.

Sie können entweder den Microsoft-Treiber (Standard) oder den IBM-Treiber verwenden, wenn Sie Power Query Desktop verwenden. Derzeit verwendet Power Query Online nur den Microsoft-Treiber. Jeder Treiber hat seine Einschränkungen.

  • Microsoft-Treiber
    • Unterstützt Transport Layer Security (TLS) erst ab der Version von Power BI Desktop vom Dezember 2024 oder später.
  • IBM-Treiber
    • Der IBM Db2-Datenbankconnector funktioniert bei Verwendung des IBM Db2-Treibers für .NET nicht mit Mainframe- oder IBM i-Systemen
    • Unterstützt DirectQuery nicht

Microsoft bietet Unterstützung für den Microsoft-Treiber, aber nicht für den IBM-Treiber. Wenn Ihre IT-Abteilung sie jedoch bereits auf Ihren Computern eingerichtet und konfiguriert hat, sollte Ihre IT-Abteilung wissen, wie Sie probleme mit dem IBM-Treiber beheben können.

In DirectQuery werden native Abfragen nicht unterstützt.

Wenn Sie DirectQuery als Datenkonnektivitätsmodus in Power Query Desktop auswählen, ist das Textfeld der SQL-Anweisung in den erweiterten Optionen deaktiviert. Das Feld ist deaktiviert, weil der Power Query IBM Db2-Connector derzeit keinen Pushdown für Abfragen über eine native Datenbankabfrage unterstützt.

Fehlerbehebung

Stellen Sie sicher, dass der IBM Db2-Treiber installiert ist.

Wenn Sie den IBM Db2-Treiber für Power Query Desktop verwenden möchten, müssen Sie zuerst den Treiber auf Ihrem Computer herunterladen, installieren und konfigurieren. So stellen Sie sicher, dass der IBM Db2-Treiber installiert ist:

  1. Öffnen Sie Windows PowerShell auf Ihrem Computer.

  2. Geben Sie den folgenden Befehl ein:

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

  3. In Dialogfenster, das geöffnet wird, sollten Sie in der Spalte InvariantName den folgenden Namen sehen:

    IBM.Data.DB2

Wenn sich dieser Name in der Spalte "InvariantName " befindet, wird der IBM Db2-Treiber installiert und ordnungsgemäß konfiguriert.

Fehlercodes SQLCODE -805 und SQLCODE -551

Wenn Sie versuchen, eine Verbindung mit einer IBM Db2-Datenbank herzustellen, tritt manchmal der häufige Fehler SQLCODE -805 auf, der angibt, dass das Paket nicht in der NULLID oder einer anderen Auflistung gefunden wird (in der Power Query-Paketverbindungskonfiguration angegeben). Möglicherweise tritt auch der häufige Fehler SQLCODE -551 auf, der angibt, dass Sie keine Pakete erstellen können, da Sie keine Paketbindungsautorität besitzen.

Typischerweise folgt auf SQLCODE -805 der SQLCODE -551, aber nur die zweite Ausnahme wird angezeigt. In wirklichkeit ist das Problem dasselbe. Sie sind nicht berechtigt, das Paket entweder an NULLID oder an die angegebene Sammlung zu binden.

In der Regel verleihen die meisten IBM Db2-Administratoren den Endbenutzern keine Bind-Paket-Autorität – insbesondere in einer IBM z/OS (Mainframe) oder IBM i (AS/400)-Umgebung. Db2 unter Linux, Unix oder Windows unterscheidet sich darin, dass Benutzerkonten standardmäßig Bind-Berechtigungen besitzen, wodurch das MSCS001-Paket (Cursor-Stabilität) in der eigenen Kollektion des Benutzers erstellt wird (Name = Benutzername).

Wenn Sie keine Binderechte für Pakete besitzen, müssen Sie Ihren Db2-Administrator um die Berechtigung zur Paketbindung bitten. Stellen Sie mit dieser Paketbindungsautorität eine Verbindung mit der Datenbank her, und rufen Sie Daten ab, wodurch das Paket automatisch erstellt wird. Anschließend kann der Administrator die Verpackungsbindungsautorität widerrufen. Außerdem kann die Administration anschließend eine Kopie des Pakets an andere Sammlungen „binden“ – um die Parallelität zu erhöhen, um die internen Standards für die Paketbindung einzuhalten und so weiter.

Wenn Sie eine Verbindung mit IBM Db2 für z/OS herstellen, kann der Db2-Administrator die folgenden Schritte ausführen.

  1. Erteilen Sie die Berechtigung, ein neues Paket mit einem der folgenden Befehle einem Benutzer zuzuordnen.

    • GRANT BINDADD ON SYSTEM TO <Name_der_Autorisierung>
    • GRANT PACKADM ON <Name_der_Sammlung> TO <Name_der_Autorisierung>
  2. Stellen Sie mithilfe von Power Query eine Verbindung mit der IBM Db2-Datenbank her, und rufen Sie eine Liste von Schemas, Tabellen und Ansichten ab. Der Power Query IBM Db2-Datenbank-Connector erstellt automatisch das Paket NULLID.MSCS001 und gewährt dann dem öffentlichen Benutzer die Ausführungsrechte für das Paket.

  3. Widerrufen Sie die Berechtigung, ein neues Paket an Benutzende zu binden, mit einem der folgenden Befehle:

    • REVOKE BINDADD FROM <Name_der_Autorisierung>
    • REVOKE PACKADM ON <Name_der_Sammlung> FROM <authorization_name>

Wenn Sie eine Verbindung mit IBM Db2 für Linux, Unix oder Windows herstellen, kann der Db2-Administrator die folgenden Schritte ausführen.

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

  2. Stellen Sie mithilfe von Power Query eine Verbindung mit der IBM Db2-Datenbank her, und rufen Sie eine Liste von Schemas, Tabellen und Ansichten ab. Der Power Query IBM Db2-Connector erstellt automatisch das Paket NULLID.MSCS001 und gewährt dann Ausführungsrechte für das Paket an die Öffentlichkeit.

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

  4. GRANT EXECUTE ON PACKAGE <Sammlung.Paket> TO USER <authorization_name>.

Wenn Sie eine Verbindung mit IBM Db2 für i herstellen, kann der Db2-Administrator die folgenden Schritte ausführen.

  1. WRKOBJ QSYS/CRTSQLPKG. Geben Sie "2" ein, um die Objektautorität zu ändern.

  2. Ändern Sie die autoritative Stelle von *EXCLUDE in PUBLIC oder <Name_der-Autorisierung>.

  3. Ändern Sie anschließend die autoritative Stelle wieder in *EXCLUDE zurück.

Fehlercode „SQLCODE -360“

Beim Versuch, eine Verbindung mit der IBM Db2-Datenbank herzustellen, tritt möglicherweise der folgende Fehler auf:

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

Diese Fehlermeldung gibt an, dass Sie den richtigen Wert für den Namen der Datenbank nicht angegeben haben.

Fehlercode „SQLCODE -1336“

The specified host could not be found.

Überprüfen Sie den Namen, und vergewissern Sie sich, dass der Host erreichbar ist. Verwenden Sie beispielsweise Ping- in einer Eingabeaufforderung, um zu versuchen, den Server zu erreichen und sicherzustellen, dass die IP-Adresse korrekt ist, oder verwenden Sie Telnet- für die Kommunikation mit dem Server.

SQLCODE -1037-Fehlercode

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

Der Port wird am Ende des Servernamens angegeben, getrennt durch einen Doppelpunkt. Wird dieser Wert nicht angegeben, wird der Standardwert 50000 verwendet.

Um den Port Db2 zu finden, der für Linux, Unix und Windows verwendet wird, führen Sie den folgenden Befehl aus:

db2 get dbm cfg | findstr SVCENAME

Suchen Sie in der Ausgabe nach einem Eintrag für SVCENAME (und SSL_SVCENAME für TLS-verschlüsselte Verbindungen). Wenn dieser Wert eine Zahl ist, ist dies der Port. Andernfalls vergleichen Sie den Wert mit der Tabelle „Dienste“ des Systems. In der Regel finden Sie diese Tabelle unter "/etc/services" oder unter "c:\windows\system32\drivers\etc\services für Windows".

Der folgende Screenshot zeigt die Ausgabe dieses Befehls in Linux/Unix.

Screenshot der Ausgabe des Db2-Befehls in Linux und Unix.

Der folgende Screenshot zeigt die Ausgabe dieses Befehls in Windows.

Screenshot der Ausgabe des Befehls

Ermitteln des Datenbanknamens

So bestimmen Sie den zu verwendenden Datenbanknamen:

  1. Führen Sie DSPRDBDIRE unter auf IBM i aus.

    Screenshot der Ausgabe von Einträgen des relationalen Datenbankverzeichnisses.

  2. Einer der Einträge weist einen Remote-Standort von *LOKAL auf. Dieser Eintrag ist der zu verwendende.

Portnummer ermitteln

Der Microsoft-Treiber stellt mithilfe des DRDA-Protokolls (Distributed Relational Database Architecture) eine Verbindung mit der Datenbank bereit. Der Standardport für DRDA ist Port 446. Versuchen Sie es zuerst mit diesem Wert.

Um sicher herauszufinden, auf welchem Port der DRDA-Dienst ausgeführt wird:

  1. Führen Sie den IBM i-Befehl WRKSRVTBLEaus.

  2. Scrollen Sie nach unten, bis Sie die Einträge für DRDA finden.

    Screenshot der Diensttabelleneinträge mit den angezeigten DRDA-Einträgen.

  3. Führen Sie NETSTATaus, um zu bestätigen, dass der DRDA-Dienst aktiviert ist und diesen Port überwacht.

    Screenshot der NETSTAT-Optionen, die Sie auswählen möchten.

  4. Wählen Sie entweder Option 3 (für IPv4) oder Option 6 (für IPv6) aus.

  5. Drücken Sie F14, um die Portnummern anstelle von Namen aufzurufen, und scrollen Sie, bis Sie den betreffenden Port gefunden haben. Es sollte einen Eintrag im "Listen"-Zustand haben.

    Screenshot des IPv4-Verbindungsstatus mit den Listenzuständen.