Condividi tramite


Database Db2 di IBM

Sommario

Articolo Descrizione
Stato di rilascio Disponibilità generale
Prodotti Excel
Power BI (modelli semantici)
Power BI (flussi di dati)
Infrastruttura (Dataflow Gen2)
Power Apps (flussi di dati)
Dynamics 365 Customer Insights
Tipi di autenticazione supportati Basico
Banca dati
Windows
Documentazione di riferimento sulle funzioni DB2.Database

Nota

Alcune funzionalità potrebbero essere presenti in un prodotto, ma non altre a causa di pianificazioni della distribuzione e funzionalità specifiche dell'host.

Prerequisiti

Per impostazione predefinita, il connettore di database IBM Db2 usa il driver Microsoft per connettersi ai dati. Se si sceglie di usare il driver IBM nelle opzioni avanzate in Power Query Desktop, è prima necessario installare il driver IBM Db2 per .NET nel computer usato per connettersi ai dati. Il nome di questo driver cambia di volta in volta, quindi assicurarsi di installare il driver IBM Db2 che funziona con .NET. Per istruzioni su come scaricare, installare e configurare il driver IBM Db2 per .NET, vai a Scaricare i client e i driver della versione iniziale 11.5. Altre informazioni: limitazioni del driver , Verificare che il driver IBM Db2 sia installato

Funzionalità supportate

  • Importazione
  • DirectQuery (modelli semantici di Power BI)
  • Opzioni avanzate
    • Driver (IBM o Microsoft)
    • Timeout del comando in minuti
    • Raccolta pacchetti
    • Istruzione SQL
    • Includi colonne di relazione
    • Navigare utilizzando la gerarchia completa

Connetti a un database IBM Db2 con Power Query Desktop

Per stabilire la connessione, seguire questa procedura:

  1. Selezionare l'opzione database IBM Db2 da Recupera dati.

  2. Specificare il server IBM Db2 a cui connettersi in Server. Se è necessaria una porta, specificarla usando il formato NomeServer:Porta, dove porta è il numero di porta. Immettere anche il database IBM Db2 a cui si vuole accedere in Database. In questo esempio il nome del server e la porta sono TestIBMDb2server.contoso.com:4000 e il database IBM Db2 a cui si accede è NORTHWD2.

    Screenshot della finestra di dialogo connessione al database IBM Db2 in cui immettere le informazioni di connessione.

  3. Se ti connetti da Power BI Desktop, seleziona la modalità di connettività dati Importa o DirectQuery. Nella parte restante di questi passaggi di esempio viene usata la modalità di connettività dei dati di importazione. Per saperne di più su DirectQuery, vedere Usare DirectQuery in Power BI Desktop.

    Nota

    Per impostazione predefinita, la finestra di dialogo del database IBM Db2 usa il driver Microsoft durante l'accesso. Per usare il driver IBM, aprire Opzioni avanzate e selezionare IBM. Per altre informazioni, vedere Connettersi con le opzioni avanzate.

    Se si seleziona DirectQuery come modalità di connettività dei dati, l'istruzione SQL nelle opzioni avanzate è disabilitata. DirectQuery attualmente non supporta il push down delle query su una query di database nativa per il connettore IBM Db2.

  4. Selezionare OK.

  5. Se ci si connette al database IBM Db2 per la prima volta, selezionare il tipo di autenticazione da usare, immettere le credenziali e quindi selezionare Connetti. Per altre informazioni sull'autenticazione, vedere Autenticazione con un'origine dati.

    Screenshot della finestra di dialogo di autenticazione in cui immettere le credenziali del database IBM Db2.

    Per impostazione predefinita, Power Query tenta di connettersi al database IBM Db2 usando una connessione crittografata. Se Power Query non riesce a connettersi usando una connessione crittografata, viene visualizzata una finestra di dialogo "Impossibile connettersi". Per connettersi usando una connessione non crittografata, selezionare OK.

    Screenshot del messaggio di supporto della crittografia in cui è possibile decidere di usare una connessione non crittografata.

  6. In Strumento di navigazioneselezionare i dati necessari, quindi selezionare Carica per caricare i dati o Trasformare i dati per trasformare i dati.

    Screenshot dello strumento di navigazione in cui si selezionano i dati necessari dal database.

Connettersi a un database IBM Db2 da Power Query Online

Per stabilire la connessione, seguire questa procedura:

  1. Selezionare l'opzione database IBM Db2 nella pagina Power Query - Connetti a origine dati.

  2. Specificare il server IBM Db2 a cui connettersi in Server. Se è necessaria una porta, specificarla usando il formato NomeServer:Porta, dove porta è il numero di porta. Immettere anche il database IBM Db2 a cui si vuole accedere in Database. In questo esempio il nome del server e la porta sono TestIBMDb2server.contoso.com:4000 e il database IBM Db2 a cui si accede è NORTHWD2

  3. Seleziona il nome del gateway dati locale.

    Nota

    È necessario selezionare un gateway dati locale per questo connettore, indipendentemente dal fatto che il database IBM Db2 si trovi nella rete locale o online.

  4. Se ci si connette al database IBM Db2 per la prima volta, selezionare il tipo di credenziali per la connessione in Tipo di autenticazione. Scegliere Basic se si prevede di usare un account creato nel database IBM Db2 anziché l'autenticazione di Windows.

  5. Immettere le credenziali.

  6. Selezionare Usa connessione crittografata se si vuole usare una connessione crittografata oppure deselezionare l'opzione se si vuole usare una connessione non crittografata.

    Screenshot delle impostazioni di connessione online del database IBM Db2 con le impostazioni necessarie immesse.

  7. Selezionare Avanti per continuare.

  8. In Strumento di navigazione selezionare i dati necessari, quindi selezionare Trasforma i dati per trasformare i dati nell'editor di Power Query.

    Screenshot del navigatore online in cui si selezionano i dati che si desidera trasformare.

Connettersi tramite opzioni avanzate

Power Query offre un set di opzioni avanzate che è possibile aggiungere alla query, se necessario.

Screenshot delle opzioni avanzate incluse nella finestra di dialogo della connessione al database IBM Db2.

Nella tabella seguente sono elencate tutte le opzioni avanzate che è possibile impostare in Power Query.

Opzione Avanzate Descrizione
Autista Determina il driver usato per connettersi al database IBM Db2. Le scelte sono IBM e Windows (impostazione predefinita). Se si seleziona il driver IBM, è prima necessario assicurarsi che nel computer sia installato il driver IBM Db2 per .NET. Questa opzione è disponibile solo in Power Query Desktop. Altre informazioni: Verificare che il driver IBM Db2 sia installato
Timeout del comando in minuti Se la connessione dura più di 10 minuti (timeout predefinito), è possibile immettere un altro valore in minuti per mantenere la connessione aperta più a lungo.
Raccolta pacchetti Specifica dove cercare i pacchetti. I pacchetti sono strutture di controllo usate da Db2 durante l'elaborazione di un'istruzione SQL e vengono create automaticamente, se necessario. Per impostazione predefinita, questa opzione usa il valore NULLID. Disponibile solo quando si usa il driver Microsoft. Altre informazioni: pacchetti DB2: concetti, esempi e problemi comuni
Istruzione SQL Per informazioni, vedere Importare dati da un database usando una query di database nativa.
Includi colonne di relazione Se selezionata, include colonne che potrebbero avere relazioni con altre tabelle. Se questa casella è deselezionata, queste colonne non vengono visualizzate.
Navigare utilizzando la gerarchia completa Se selezionata, lo strumento di navigazione visualizza la gerarchia completa delle tabelle nel database a cui ci si connette. Se deselezionato, lo strumento di navigazione visualizza solo le tabelle le cui colonne e righe contengono dati.

Dopo aver selezionato le opzioni avanzate necessarie, selezionare OK in Power Query Desktop o Avanti in Power Query Online per connettersi al database IBM Db2.

Problemi e limitazioni

Limitazioni del driver

Il driver Microsoft è lo stesso usato in Microsoft Host Integration Server, denominato "provider di ADO.NET per DB2". Il driver IBM è il driver IBM Db/2 che funziona con .NET. Il nome di questo driver cambia di volta in volta, quindi assicurarsi che sia quello che funziona con .NET, che è diverso dai driver IBM Db2 che funzionano con OLE/DB, ODBC o JDBC.

È possibile scegliere di usare il driver Microsoft (impostazione predefinita) o il driver IBM se si usa Power Query Desktop. Attualmente, Power Query Online usa solo il driver Microsoft. Ogni driver presenta le sue limitazioni.

  • Driver Microsoft
    • Supporta Transport Layer Security (TLS) solo con la versione di dicembre 2024 di Power BI Desktop o versioni successive
  • Driver IBM
    • Il connettore di database IBM Db2, quando si usa il driver IBM Db2 per .NET, non funziona con i sistemi Mainframe o IBM i
    • Non supporta DirectQuery

Microsoft fornisce supporto per il driver Microsoft, ma non per il driver IBM. Tuttavia, se il reparto IT ha già installato e configurato sui computer, dovrebbe sapere come risolvere i problemi del driver IBM.

Le query native non sono supportate in DirectQuery

Quando si seleziona DirectQuery come modalità di connettività dei dati in Power Query Desktop, la casella di testo istruzione SQL nelle opzioni avanzate è disabilitata. La casella è disabilitata perché il connettore IBM Db2 di Power Query attualmente non supporta il push delle query in alto su una query di database nativa.

Risoluzione dei problemi

Verificare che il driver IBM Db2 sia installato

Se si sceglie di usare il driver IBM Db2 per Power Query Desktop, è prima necessario scaricare, installare e configurare il driver nel computer. Per assicurarsi che il driver IBM Db2 sia installato:

  1. Aprire Windows PowerShell nel computer.

  2. Immettere il comando seguente:

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

  3. Nella finestra di dialogo visualizzata verrà visualizzato il nome seguente nella colonna InvariantName:

    IBM.Data.DB2

Se questo nome si trova nella colonna InvariantName , il driver IBM Db2 viene installato e configurato correttamente.

Codici di errore di SQLCODE -805 e SQLCODE -551

Quando si tenta di connettersi a un database IBM Db2, a volte si verifica l'errore comune SQLCODE -805, che indica che il pacchetto non viene trovato nell'insieme o in un'altra NULLID raccolta (specificata nella configurazione della connessione al pacchetto di Power Query). È anche possibile riscontrare l'errore comune SQLCODE -551, che indica che non è possibile creare pacchetti perché manca l'autorità di associazione del pacchetto.

In genere, SQLCODE -805 è seguito da SQLCODE -551, ma viene visualizzata solo la seconda eccezione. In realtà, il problema è lo stesso. Non hai l'autorità per associare il pacchetto a NULLID o alla raccolta specificata.

In genere, la maggior parte degli amministratori IBM Db2 non fornisce l'autorità di associazione dei pacchetti agli utenti finali, in particolare in un ambiente IBM z/OS (mainframe) o IBM i (AS/400). Db2 su Linux, Unix o Windows differisce per il fatto che gli account utente dispongono di privilegi di associazione per impostazione predefinita, i quali creano il pacchetto MSCS001 (Stabilità del cursore) nella raccolta dell'utente (nome = nome utente).

Se non si dispone dei privilegi di binding del pacchetto, è necessario chiedere all'amministratore Db2 i diritti di binding del pacchetto. Con questa autorità di associazione di pacchetti connettersi al database e recuperare i dati, che crea automaticamente il pacchetto. Successivamente, l'amministratore può revocare il diritto di associare i pacchetti. Inoltre, in seguito, l'amministratore può "associare la copia" al pacchetto ad altre raccolte, per aumentare la concorrenza, per soddisfare meglio gli standard interni per cui sono associati i pacchetti e così via.

Quando ci si connette a IBM Db2 per z/OS, l'amministratore db2 può eseguire la procedura seguente.

  1. Concedere l'autorità per associare un nuovo pacchetto all'utente con uno dei comandi seguenti:

    • CONCEDI BINDADD SU SISTEMA A <authorization_name>
    • GRANT PACKADM ON <collection_name> TO <authorization_name>
  2. Utilizzando Power Query, connettersi al database IBM Db2 e recuperare un elenco di schemi, tabelle e viste. Il connettore di database IBM Db2 di Power Query crea automaticamente il pacchetto NULLID. MSCS001 e quindi concede l'esecuzione sul pacchetto al pubblico.

  3. Revocare l'autorità per associare un nuovo pacchetto all'utente con uno dei comandi seguenti:

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

Quando ci si connette a IBM Db2 per Linux, Unix o Windows, l'amministratore db2 può eseguire la procedura seguente.

  1. CONCEDI BINDADD SUL DATABASE ALL'UTENTE <nome_autorizzazione>.

  2. Utilizzando Power Query, connettersi al database IBM Db2 e recuperare un elenco di schemi, tabelle e viste. Il connettore IBM Db2 di Power Query crea automaticamente il pacchetto NULLID. MSCS001 e quindi concede l'esecuzione sul pacchetto al pubblico.

  3. REVOCA BINDADD SUL DATABASE DALL'UTENTE <authorization_name>.

  4. CONCEDI ESECUZIONE SUL PACCHETTO <collection.package> ALL'UTENTE <authorization_name>.

Quando ci si connette a IBM Db2 per i, l'amministratore db2 può eseguire la procedura seguente.

  1. WRKOBJ QSYS/CRTSQLPKG. Immettere "2" per cambiare l'autorità dell'oggetto.

  2. Modificare l'autorità da *EXCLUDE a PUBLIC o <authorization_name>.

  3. Successivamente, modificare l'autorità a *EXCLUDE.

Codice di errore di SQLCODE -360

Quando si tenta di connettersi al database IBM Db2, potrebbe verificarsi l'errore seguente:

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

Questo messaggio di errore indica che non è stato inserito il valore corretto in per il nome del database.

Codice di errore di SQLCODE -1336

The specified host could not be found.

Ricontrolla il nome e verifica che l'host sia raggiungibile. Ad esempio, usare ping in un prompt dei comandi per tentare di raggiungere il server e assicurarsi che l'indirizzo IP sia corretto oppure usare telnet per comunicare con il server.

Codice di errore di SQLCODE -1037

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

La porta viene specificata alla fine del nome del server, separata da due punti. Se omesso, viene utilizzato il valore predefinito 50000.

Per trovare quale porta Db2 utilizza per Linux, Unix e Windows, esegui questo comando:

db2 get dbm cfg | findstr SVCENAME

Cerca nell'output una voce per SVCENAME (e SSL_SVCENAME per le connessioni crittografate TLS). Se questo valore è un numero, questa è la porta. In caso contrario, confrontare il valore con la tabella "servizi" del sistema. È in genere possibile trovare questa tabella in /etc/services o in c:\windows\system32\drivers\etc\services per Windows.

Lo screenshot seguente mostra l'output di questo comando in Linux/Unix.

Screenshot che visualizza l'output del comando db2 in Linux e Unix.

Lo screenshot seguente mostra l'output di questo comando in Windows.

Screenshot che mostra l'output del comando db2 in Windows.

Determinare il nome del database

Per determinare il nome del database da usare:

  1. In IBM i eseguire DSPRDBDIRE.

    Screenshot che mostra i risultati delle voci della directory del database relazionale.

  2. Una delle voci ha un'ubicazione remota che è *LOCAL. Questa voce è quella da usare.

Determinare il numero di porta

Il driver Microsoft si connette al database usando il protocollo DRDA (Distributed Relational Database Architecture). La porta predefinita per DRDA è la porta 446. Provare prima questo valore.

Per individuare la porta su cui è in esecuzione il servizio DRDA:

  1. Eseguire il comando IBM i WRKSRVTBLE.

  2. Scorrere verso il basso fino a trovare le voci per DRDA.

    Schermata che mostra le voci della tabella dei servizi con le voci DRDA mostrate.

  3. Per verificare che il servizio DRDA sia attivo e in ascolto su tale porta, eseguire NETSTAT.

    Screenshot delle opzioni NETSTAT da selezionare.

  4. Scegliere l'opzione 3 (per IPv4) o l'opzione 6 (per IPv6).

  5. Premere F14 per elencare i numeri di porta anziché i nomi e scorrere fino a trovare la porta in questione. Deve avere una voce con lo stato "Listen".

    Screenshot dello stato della connessione IPv4 che mostra gli stati di ascolto.