IBM Db2 database

Podsumowanie

Element opis
Stan wydania Ogólna dostępność
Produkty Excel
Power BI (modele semantyczne)
Power BI (przepływy danych)
Sieć szkieletowa (Dataflow Gen2)
Power Apps (przepływy danych)
Dynamics 365 Customer Insights
Obsługiwane typy uwierzytelniania Podstawowy
Baza danych
Windows
Dokumentacja referencyjna funkcji DB2. Bazy danych

Uwaga

Niektóre funkcje mogą być obecne w jednym produkcie, ale nie w innych ze względu na harmonogramy wdrażania i możliwości specyficzne dla hosta.

Wymagania wstępne

Domyślnie łącznik bazy danych IBM Db2 używa sterownika firmy Microsoft do łączenia się z danymi. Jeśli zdecydujesz się użyć sterownika IBM w opcjach zaawansowanych w programie Power Query Desktop, musisz najpierw zainstalować sterownik IBM Db2 dla platformy .NET na maszynie używanej do łączenia się z danymi. Nazwa tego sterownika zmienia się od czasu do czasu, dlatego należy zainstalować sterownik IBM Db2, który współpracuje z platformą .NET. Aby uzyskać instrukcje dotyczące pobierania, instalowania i konfigurowania sterownika IBM Db2 dla platformy .NET, zobacz Pobieranie początkowych klientów i sterowników wersji 11.5. Więcej informacji: Ograniczenia sterowników, Upewnij się, że sterownik IBM Db2 jest zainstalowany

Obsługiwane możliwości

  • Import
  • Tryb DirectQuery (modele semantyczne usługi Power BI)
  • Opcje zaawansowane
    • Sterownik (IBM lub Microsoft)
    • Limit czasu polecenia w minutach
    • Kolekcja pakietów
    • SQL statement
    • Dołącz kolumny relacji
    • Nawiguj, używając pełnej hierarchii

Połączenie do bazy danych IBM Db2 z programu Power Query Desktop

Aby nawiązać połączenie, wykonaj następujące czynności:

  1. Wybierz opcję baza danych IBM Db2 z pozycji Pobierz dane.

  2. Określ serwer IBM Db2 do nawiązania połączenia z serwerem. Jeśli port jest wymagany, określ go przy użyciu formatu ServerName:Port, gdzie port jest numerem portu. Wprowadź również bazę danych IBM Db2, do której chcesz uzyskać dostęp w bazie danych. W tym przykładzie nazwa serwera i port to TestIBMDb2server.contoso.com:4000 , a uzyskiwana baza danych IBM Db2 to NORTHWD2.

    Enter IBM Db2 database connection.

  3. Jeśli łączysz się z programu Power BI Desktop, wybierz tryb łączności danych Import lub DirectQuery . W pozostałych krokach tego przykładu jest używany tryb łączności danych importu. Aby dowiedzieć się więcej na temat trybu DirectQuery, przejdź do tematu Używanie trybu DirectQuery w programie Power BI Desktop.

    Uwaga

    Domyślnie okno dialogowe bazy danych IBM Db2 używa sterownika firmy Microsoft podczas logowania. Jeśli chcesz użyć sterownika IBM, otwórz opcje zaawansowane i wybierz pozycję IBM. Więcej informacji: Połączenie przy użyciu opcji zaawansowanych

    Jeśli wybierzesz tryb DirectQuery jako tryb łączności danych, instrukcja SQL w opcjach zaawansowanych zostanie wyłączona. Zapytanie bezpośrednie obecnie nie obsługuje wypychania zapytań na podstawie natywnego zapytania bazy danych dla łącznika IBM Db2.

  4. Wybierz przycisk OK.

  5. Jeśli po raz pierwszy łączysz się z tą bazą danych IBM Db2, wybierz typ uwierzytelniania, którego chcesz użyć, wprowadź swoje poświadczenia, a następnie wybierz pozycję Połączenie. Aby uzyskać więcej informacji na temat uwierzytelniania, zobacz Uwierzytelnianie za pomocą źródła danych.

    Enter your IBM Db2 database credentials.

    Domyślnie program Power Query próbuje nawiązać połączenie z bazą danych IBM Db2 przy użyciu szyfrowanego połączenia. Jeśli program Power Query nie może nawiązać połączenia przy użyciu szyfrowanego połączenia, zostanie wyświetlone okno dialogowe "nie można nawiązać połączenia". Aby nawiązać połączenie przy użyciu nieszyfrowanego połączenia, wybierz przycisk OK.

    Unable to connect dialog box

  6. W obszarze Nawigator wybierz wymagane dane, a następnie wybierz pozycję Załaduj , aby załadować dane lub Przekształć dane , aby przekształcić dane.

    Select the data you require from the database

Połączenie do bazy danych IBM Db2 z usługi Power Query Online

Aby nawiązać połączenie, wykonaj następujące czynności:

  1. Wybierz opcję bazy danych IBM Db2 na stronie Power Query — Połączenie do źródła danych.

  2. Określ serwer IBM Db2 do nawiązania połączenia z serwerem. Jeśli port jest wymagany, określ go przy użyciu formatu ServerName:Port, gdzie port jest numerem portu. Wprowadź również bazę danych IBM Db2, do której chcesz uzyskać dostęp w bazie danych. W tym przykładzie nazwa i port serwera to TestIBMDb2server.contoso.com:4000 , a baza danych IBM Db2, do których uzyskuje się dostęp NORTHWD2

  3. Wybierz nazwę lokalnej bramy danych.

    Uwaga

    Musisz wybrać lokalną bramę danych dla tego łącznika, niezależnie od tego, czy baza danych IBM Db2 znajduje się w sieci lokalnej, czy w trybie online.

  4. Jeśli po raz pierwszy nawiązujesz połączenie z tą bazą danych IBM Db2, wybierz typ poświadczeń dla połączenia w polu Rodzaj uwierzytelniania. Wybierz pozycję Podstawowa, jeśli planujesz użyć konta utworzonego w bazie danych IBM Db2 zamiast uwierzytelniania systemu Windows.

  5. Wprowadź poświadczenia.

  6. Wybierz pozycję Użyj szyfrowanego Połączenie ion, jeśli chcesz użyć szyfrowanego połączenia lub wyczyść opcję, jeśli chcesz użyć niezaszyfrowanego połączenia.

    Enter IBM Db2 database online connection.

  7. Wybierz przycisk Dalej, aby kontynuować.

  8. W nawigatorze wybierz wymagane dane, a następnie wybierz pozycję Przekształć dane, aby przekształcić dane w Edytor Power Query.

    Select the data you want to transform in the Navigator

Połączenie przy użyciu opcji zaawansowanych

Dodatek Power Query udostępnia zestaw zaawansowanych opcji, które można dodać do zapytania w razie potrzeby.

Advanced options included in the IBM Db2 database connection dialog box.

W poniższej tabeli wymieniono wszystkie opcje zaawansowane, które można ustawić w dodatku Power Query.

Opcja zaawansowana opis
Sterownik Określa, który sterownik jest używany do nawiązywania połączenia z bazą danych IBM Db2. Opcje to IBM i Windows (ustawienie domyślne). W przypadku wybrania sterownika IBM należy najpierw upewnić się, że sterownik IBM Db2 dla platformy .NET jest zainstalowany na maszynie. Ta opcja jest dostępna tylko w programie Power Query Desktop. Więcej informacji: Upewnij się, że sterownik IBM Db2 jest zainstalowany
Limit czasu polecenia w minutach Jeśli połączenie trwa dłużej niż 10 minut (domyślny limit czasu), możesz wprowadzić inną wartość w minutach, aby zachować dłuższe otwieranie połączenia.
Kolekcja pakietów Określa, gdzie szukać pakietów. Pakiety to struktury sterujące używane przez bazę danych Db2 podczas przetwarzania instrukcji SQL i zostaną automatycznie utworzone w razie potrzeby. Domyślnie ta opcja używa wartości NULLID. Dostępne tylko w przypadku korzystania z sterownika firmy Microsoft. Więcej informacji: Pakiety DB2: Pojęcia, przykłady i typowe problemy
SQL statement Aby uzyskać informacje, przejdź do tematu Importowanie danych z bazy danych przy użyciu natywnego zapytania bazy danych.
Dołącz kolumny relacji Jeśli jest zaznaczone, zawiera kolumny, które mogą mieć relacje z innymi tabelami. Jeśli to pole zostanie wyczyszczone, te kolumny nie będą widoczne.
Nawiguj, używając pełnej hierarchii Jeśli to pole jest zaznaczone, nawigator wyświetla pełną hierarchię tabel w bazie danych, z którą nawiązujesz połączenie. W przypadku wyczyszczenia nawigator wyświetla tylko tabele, których kolumny i wiersze zawierają dane.

Po wybraniu opcji zaawansowanych, których potrzebujesz, wybierz przycisk OK w programie Power Query Desktop lub Dalej w usłudze Power Query Online, aby nawiązać połączenie z bazą danych IBM Db2.

Problemy i ograniczenia

Ograniczenia sterowników

Sterownik firmy Microsoft jest taki sam, który jest używany w programie Microsoft Host Integration Server, nazywanym "ADO.NET Provider for DB2". Sterownik IBM to sterownik IBM Db/2, który współpracuje z platformą .NET. Nazwa tego sterownika zmienia się od czasu do czasu, więc upewnij się, że jest to ten, który działa z platformą .NET, który różni się od sterowników IBM Db2, które współpracują z OLE/DB, ODBC lub JDBC.

Jeśli używasz programu Power Query Desktop, możesz użyć sterownika firmy Microsoft (domyślnego) lub sterownika IBM. Obecnie usługa Power Query Online używa tylko sterownika firmy Microsoft. Każdy sterownik ma swoje ograniczenia.

  • Sterownik firmy Microsoft
    • Nie obsługuje protokołu Transport Layer Security (TLS)
  • Sterownik IBM
    • Łącznik bazy danych IBM Db2, w przypadku używania sterownika IBM Db2 dla platformy .NET, nie działa z systemami Mainframe ani IBM i
    • Nie obsługuje trybu DirectQuery

Firma Microsoft zapewnia pomoc techniczną dla sterownika firmy Microsoft, ale nie dla sterownika IBM. Jeśli jednak dział IT ma już skonfigurowany i skonfigurowany na maszynach, dział IT powinien wiedzieć, jak rozwiązywać problemy ze sterownikiem IBM.

Zapytania natywne nie są obsługiwane w trybie DirectQuery

Po wybraniu trybu DirectQuery jako trybu łączności danych w programie Power Query Desktop pole tekstowe instrukcji SQL w opcjach zaawansowanych jest wyłączone. Jest ona wyłączona, ponieważ łącznik IBM Db2 dodatku Power Query nie obsługuje obecnie wypychania zapytań na podstawie natywnego zapytania bazy danych.

Rozwiązywanie problemów

Upewnij się, że sterownik IBM Db2 jest zainstalowany

Jeśli zdecydujesz się użyć sterownika IBM Db2 dla programu Power Query Desktop, musisz najpierw pobrać, zainstalować i skonfigurować sterownik na maszynie. Aby upewnić się, że sterownik IBM Db2 został zainstalowany:

  1. Otwórz program Windows PowerShell na maszynie.

  2. Podaj następujące polecenie:

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

  3. W wyświetlonym oknie dialogowym w kolumnie InvariantName powinna zostać wyświetlona następująca nazwa:

    IBM.Data.DB2

Jeśli ta nazwa znajduje się w kolumnie InvariantName , sterownik IBM Db2 został poprawnie zainstalowany i skonfigurowany.

Kody błędów SQLCODE -805 i SQLCODE -551

Podczas próby nawiązania połączenia z bazą danych IBM Db2 czasami może wystąpić typowy błąd SQLCODE -805, który wskazuje, że pakiet nie znajduje się w NULLID kolekcji lub innej kolekcji (określonej w konfiguracji połączenia pakietu Power Query). Może również wystąpić typowy błąd SQLCODE -551, który wskazuje, że nie można tworzyć pakietów, ponieważ brakuje urzędu powiązania pakietu.

Zazwyczaj po kodzie SQLCODE -805 następuje kod SQLCODE -551, ale zobaczysz tylko drugi wyjątek. W rzeczywistości problem jest taki sam. Brak uprawnień do powiązania pakietu z NULLID określoną kolekcją lub z określoną kolekcją.

Zazwyczaj większość administratorów IBM Db2 nie zapewnia uprawnień związanych z pakietami do użytkowników końcowych — zwłaszcza w środowisku IBM z/OS (mainframe) lub IBM i (AS/400). Baza db2 w systemach Linux, Unix lub Windows różni się w tym przypadku, że konta użytkowników mają domyślnie powiązane uprawnienia, które tworzą pakiet MSCS001 (stabilność kursora) w kolekcji użytkownika (nazwa = nazwa logowania użytkownika).

Jeśli nie masz uprawnień pakietu powiązanego, musisz poprosić administratora db2 o podanie urzędu powiązania pakietu. Za pomocą tego urzędu powiązania pakietu połącz się z bazą danych i pobierz dane, co spowoduje automatyczne utworzenie pakietu. Następnie administrator może odwołać urząd powiązania pakietów. Ponadto administrator może następnie "powiązać kopię" pakietu z innymi kolekcjami , aby zwiększyć współbieżność, aby lepiej dopasować wewnętrzne standardy dotyczące tego, gdzie pakiety są powiązane itd.

Podczas nawiązywania połączenia z usługą IBM Db2 for z/OS administrator db2 może wykonać następujące czynności.

  1. Udziel uprawnień, aby powiązać nowy pakiet z użytkownikiem przy użyciu jednego z następujących poleceń:

    • GRANT BINDADD ON SYSTEM TO <authorization_name>
    • GRANT PACKADM ON <collection_name TO authorization_name> <>
  2. Za pomocą dodatku Power Query połącz się z bazą danych IBM Db2 i pobierz listę schematów, tabel i widoków. Łącznik bazy danych IBM Db2 dodatku Power Query automatycznie utworzy pakiet NULLID. MSCS001, a następnie przyznaj wykonywanie w pakiecie do publicznej wiadomości.

  3. Odwołaj urząd, aby powiązać nowy pakiet z użytkownikiem przy użyciu jednego z następujących poleceń:

    • ODWOŁYWANIE PLIKU BINDADD Z <authorization_name>
    • ODWOŁYWANIE NARZĘDZIA PACKADM W <COLLECTION_NAME> Z <AUTHORIZATION_NAME>

Podczas nawiązywania połączenia z bazą danych IBM Db2 dla systemów Linux, Unix lub Windows administrator bazy danych Db2 może wykonać następujące czynności.

  1. GRANT BINDADD ON DATABASE TO USER AUTHORIZATION_NAME (UDZIELANIE POWIĄZANIAADD W BAZIE DANYCH DO AUTHORIZATION_NAME> UŻYTKOWNIKA<).

  2. Za pomocą dodatku Power Query połącz się z bazą danych IBM Db2 i pobierz listę schematów, tabel i widoków. Łącznik IBM Db2 dodatku Power Query automatycznie utworzy identyfikator NULLID pakietu. MSCS001, a następnie przyznaj wykonywanie w pakiecie do publicznej wiadomości.

  3. ODWOŁAJ POWIĄZANIEDODAJ W BAZIE DANYCH Z AUTHORIZATION_NAME> UŻYTKOWNIKA<.

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

Podczas nawiązywania połączenia z bazą danych IBM Db2 for i administrator bazy danych Db2 może wykonać następujące kroki.

  1. WRKOBJ QSYS/CRTSQLPKG. Wpisz "2", aby zmienić urząd obiektu.

  2. Zmień urząd z *WYKLUCZ na PUBLICZNY lub <authorization_name>.

  3. Następnie zmień urząd z powrotem na *WYKLUCZ.

Kod błędu SQLCODE -360

Podczas próby nawiązania połączenia z bazą danych IBM Db2 może wystąpić następujący błąd:

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

Ten komunikat o błędzie wskazuje, że nie umieściliśmy odpowiedniej wartości dla nazwy bazy danych.

Kod błędu SQLCODE -1336

The specified host could not be found.

Dokładnie sprawdź nazwę i upewnij się, że host jest osiągalny. Na przykład użyj polecenia ping w wierszu polecenia, aby spróbować nawiązać połączenie z serwerem i upewnić się, że adres IP jest poprawny lub użyj polecenia telnet do komunikowania się z serwerem.

Kod błędu SQLCODE -1037

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

Port jest określony na końcu nazwy serwera, oddzielony dwukropkiem. W przypadku pominięcia zostanie użyta wartość domyślna 50000.

Aby znaleźć port Db2 używany dla systemów Linux, Unix i Windows, uruchom następujące polecenie:

db2 get dbm cfg | findstr SVCENAME

Poszukaj w danych wyjściowych wpisu SVCENAME (i SSL_SVCENAME dla połączeń szyfrowanych TLS). Jeśli ta wartość jest liczbą, jest to port. W przeciwnym razie należy odwoływać się do wartości z tabelą "services" systemu. Zazwyczaj można to znaleźć na stronie /etc/services lub w c:\windows\system32\drivers\etc\services dla systemu Windows.

Poniższy zrzut ekranu przedstawia dane wyjściowe tego polecenia w systemie Linux/Unix.

Image with output of the db2 command in Linux and Unix

Poniższy zrzut ekranu przedstawia dane wyjściowe tego polecenia w systemie Windows.

Image with output of the db2 command in Windows

Określanie nazwy bazy danych

Aby określić nazwę bazy danych do użycia:

  1. W programie IBM i uruchom polecenie DSPRDBDIRE.

    Image showing the output of the Display Relational Database Directory Entries

  2. Jeden z wpisów będzie miał lokalizację zdalną *LOCAL. Ten wpis jest tym, którego należy użyć.

Określanie numeru portu

Sterownik firmy Microsoft łączy się z bazą danych przy użyciu protokołu ROZPROSZONEj relacyjnej bazy danych (DRDA). Domyślny port drDA to port 446. Najpierw wypróbuj tę wartość.

Aby sprawdzić, na jakim porcie działa usługa DRDA:

  1. Uruchom polecenie WRKSRVTBLEIBM i .

  2. Przewiń w dół do momentu znalezienia wpisów drDA.

    Service Table Entries

  3. Aby potwierdzić, że usługa DRDA jest uruchomiona i nasłuchuje na tym porcie, uruchom polecenie NETSTAT.

    DRDA listening

  4. Wybierz opcję 3 (dla protokołu IPv4) lub opcję 6 (dla protokołu IPv6).

  5. Naciśnij klawisz F14, aby wyświetlić numery portów zamiast nazw, i przewiń do momentu wyświetlenia danego portu. Powinien on mieć wpis ze stanem "Nasłuchiwanie".

    IP connection status

Więcej informacji