Banco de dados IBM Db2
Resumo
Item | Descrição |
---|---|
Estado de lançamento | Disponibilidade geral |
Produtos | Excel Power BI (modelos semânticos) Power BI (fluxos de dados) Fabric (Dataflow Gen2) Power Apps (fluxos de dados) Informações do Cliente do Dynamics 365 |
Tipos de autenticação com suporte | Básico Base de dados Windows |
Documentação de referência de função | DB2.Banco de Dados |
Nota
Alguns recursos podem estar presentes em um produto, mas não em outros devido a agendas de implantação e recursos específicos do host.
Pré-requisitos
Por padrão, o conector de banco de dados IBM Db2 usa o driver da Microsoft para se conectar aos seus dados. Se você optar por usar o driver IBM nas opções avançadas no Power Query Desktop, primeiro instale o driver IBM Db2 para .NET no computador usado para se conectar aos dados. O nome desse driver muda de vez em quando, portanto, instale o driver IBM Db2 que funciona com o .NET. Para obter instruções sobre como baixar, instalar e configurar o driver IBM Db2 para .NET, acesse Baixar clientes e drivers iniciais da versão 11.5. Mais informações: limitações do driver , verifique se o driver IBM Db2 está instalado
Capacidades Suportadas
- Importação
- DirectQuery (modelos semânticos do Power BI)
- Opções avançadas
- Driver (IBM ou Microsoft)
- Tempo limite de comando em minutos
- Coleção de pacotes
- Instrução SQL
- Incluir colunas de relação
- Navegar usando a hierarquia completa
Conectar-se a um banco de dados IBM Db2 do Power Query Desktop
Para fazer a conexão, execute as seguintes etapas:
Selecione a opção Banco de dados IBM Db2 em Obter Dados.
Especifique o servidor IBM Db2 ao qual se conectar no Server. Se uma porta for necessária, especifique-a usando o formato ServerName:Port, em que Porta é o número da porta. Além disso, insira o banco de dados IBM Db2 que você deseja acessar no banco de dados . Neste exemplo, o nome do servidor e a porta são
TestIBMDb2server.contoso.com:4000
e o banco de dados IBM Db2 que está sendo acessado éNORTHWD2
.Se você estiver se conectando por meio do Power BI Desktop, selecione o modo de conectividade de dados Importar ou DirectQuery. O restante dessas etapas de exemplo usa o modo de conectividade de dados Importar. Para saber mais sobre o DirectQuery, acesse Usar o DirectQuery no Power BI Desktop.
Nota
Por padrão, a caixa de diálogo do banco de dados IBM Db2 usa o driver da Microsoft durante o login. Se você quiser usar o driver IBM, abra Opções avançadas e selecione IBM. Mais informações: Conectar usando opções avançadas
Se você selecionar directQuery como seu modo de conectividade de dados, a instrução SQL nas opções avançadas será desabilitada. No momento, o DirectQuery não dá suporte ao push de consulta em uma consulta de banco de dados nativo para o conector do IBM Db2.
Selecione OK.
Se esta for a primeira vez que você estiver se conectando a esse banco de dados IBM Db2, selecione o tipo de autenticação que deseja usar, insira suas credenciais e selecione Conectar. Para ter mais informações sobre a autenticação, acesse Autenticação com uma fonte de dados.
Por padrão, o Power Query tenta se conectar ao banco de dados IBM Db2 usando uma conexão criptografada. Se o Power Query não conseguir se conectar usando uma conexão criptografada, uma caixa de diálogo informando "não foi possível conectar" aparecerá. Para se conectar usando uma conexão não criptografada, selecione OK.
No Navegador, selecione os dados necessários e selecione Carregar para carregar os dados ou Transformar Dados para transformar os dados.
Conectar-se a um banco de dados IBM Db2 do Power Query Online
Para fazer a conexão, execute as seguintes etapas:
Selecione a opção Banco de dados IBM Db2 na página Power Query – Conectar-se à fonte de dados.
Especifique o servidor IBM Db2 ao qual se conectar no Server. Se uma porta for necessária, especifique-a usando o formato ServerName:Port, em que Porta é o número da porta. Além disso, insira o banco de dados IBM Db2 que você deseja acessar no banco de dados . Neste exemplo, o nome do servidor e a porta são
TestIBMDb2server.contoso.com:4000
e o banco de dados IBM Db2 que está sendo acessado éNORTHWD2
Selecione o nome do gateway de dados local.
Nota
Você deve selecionar um gateway de dados local para esse conector, independentemente de o banco de dados IBM Db2 estar em sua rede local ou online.
Se esta for a primeira vez que você estiver se conectando a esse banco de dados IBM Db2, selecione o tipo de credenciais para a conexão no tipo de autenticação . Escolha Básico se você planeja usar uma conta criada no banco de dados IBM Db2 em vez de autenticação do Windows.
Insira suas credenciais.
Selecione usar a conexão criptografada se você quiser usar uma conexão criptografada ou desmarque a opção se quiser usar uma conexão não criptografada.
Selecione Próximo para continuar.
Em Navegador, selecione os dados desejados e selecione Transformar dados para transformar os dados no Editor do Power Query.
Conectar-se usando opções avançadas
O Power Query fornece um conjunto de opções avançadas que você pode adicionar à consulta, se necessário.
A tabela a seguir lista todas as opções avançadas que você pode definir no Power Query.
Opção avançada | Descrição |
---|---|
Motorista | Determina qual driver é usado para se conectar ao banco de dados IBM Db2. As opções são IBM e Windows (padrão). Se você selecionar o driver IBM, primeiro deverá garantir que o driver IBM Db2 para .NET esteja instalado em seu computador. Essa opção só está disponível no Power Query Desktop. Mais informações: verifique se o driver IBM Db2 está instalado |
Tempo limite de comando em minutos | Se a conexão durar mais de 10 minutos (o tempo limite padrão), você poderá inserir outro valor em minutos para manter a conexão aberta por mais tempo. |
Coleção de pacotes | Especifica onde procurar pacotes. Os pacotes são estruturas de controle usadas pelo Db2 ao processar uma instrução SQL e serão criados automaticamente, se necessário. Por padrão, essa opção usa o valor NULLID . Disponível somente ao usar o driver da Microsoft. Mais informações: pacotes DB2: conceitos, exemplos e problemas comuns |
Instrução SQL | Para obter informações, acesse Importar dados de um banco de dados usando consulta de banco de dados nativa. |
Incluir colunas de relação | Se marcada, inclui colunas que podem ter relações com outras tabelas. Se essa caixa estiver desmarcada, você não verá essas colunas. |
Navegar usando a hierarquia completa | Se marcada, o navegador exibirá a hierarquia completa de tabelas no banco de dados ao qual você está se conectando. Se ela estiver desmarcada, o navegador exibirá apenas as tabelas cujas colunas e linhas contêm dados. |
Depois de selecionar as opções avançadas necessárias, selecione OK no Power Query Desktop ou Próximo no Power Query Online para se conectar ao banco de dados IBM Db2.
Problemas e limitações
Limitações do driver
O driver da Microsoft é o mesmo usado no Microsoft Host Integration Server, chamado de "Provedor ADO.NET para DB2". O driver IBM é o driver IBM Db/2 que trabalha com o .NET. O nome desse driver muda de tempos em tempos, portanto, certifique-se de que ele funcione com o .NET, que é diferente dos drivers IBM Db2 que trabalham com OLE/DB, ODBC ou JDBC.
Você pode optar por usar o driver da Microsoft (padrão) ou o driver IBM se estiver usando o Power Query Desktop. Atualmente, o Power Query Online usa apenas o driver da Microsoft. Cada driver tem suas limitações.
- Driver da Microsoft
- Dá suporte ao TLS (Transport Layer Security) somente com a versão de dezembro de 2024 do Power BI Desktop ou posterior
- Driver da IBM
- O conector de banco de dados IBM Db2, ao usar o driver IBM Db2 para .NET, não funciona com sistemas Mainframe ou IBM i
- Não dá suporte ao DirectQuery
A Microsoft oferece suporte para o driver da Microsoft, mas não para o driver IBM. No entanto, se o departamento de TI já tiver instalado e configurado em seus computadores, ele deverá saber como resolver problemas do driver da IBM.
Consultas nativas sem suporte no DirectQuery
Quando você seleciona DirectQuery como o modo de conectividade de dados no Power Query Desktop, a caixa de texto da instrução SQL nas opções avançadas é desabilitada. Ele está desabilitado porque o conector do IBM Db2 para o Power Query não dá suporte ao push de consulta em uma consulta de banco de dados nativo.
Resolução de problemas
Verifique se o driver IBM Db2 está instalado
Se você optar por usar o driver IBM Db2 para Power Query Desktop, primeiro precisará baixar, instalar e configurar o driver em seu computador. Para garantir que o driver IBM Db2 tenha sido instalado:
Abra o Windows PowerShell em seu computador.
Insira o seguinte comando:
[System.Data.Common.DbProviderFactories]::GetFactoryClasses() | ogv
Na caixa de diálogo que é aberta, você deverá ver o seguinte nome na coluna InvariantName:
IBM.Data.DB2
Se esse nome estiver na coluna InvariantName, o driver IBM Db2 foi instalado e configurado corretamente.
Códigos de erro -805 e SQLCODE -551
Ao tentar se conectar a um banco de dados IBM Db2, você pode às vezes encontrar o erro comum SQLCODE -805, que indica que o pacote não foi encontrado na coleção NULLID
ou em outra coleção especificada na configuração de conexão do Pacote no Power Query. Você também pode encontrar o erro comum SQLCODE -551, que indica que você não pode criar pacotes porque não tem autoridade de associação de pacote.
Normalmente, o SQLCODE -805 é seguido por SQLCODE -551, mas você verá apenas a segunda exceção. Na realidade, o problema é o mesmo. Você não tem autoridade para associar o pacote a NULLID
ou à coleção especificada.
Normalmente, a maioria dos administradores do IBM Db2 não concede autoridade para associar pacotes aos usuários finais, especialmente em um ambiente IBM z/OS (mainframe) ou IBM i (AS/400). O Db2 no Linux, Unix ou Windows é diferente, pois as contas de usuário possuem privilégios de vinculação por padrão, permitindo a criação do pacote MSCS001 (Estabilidade do Cursor) na coleção própria do usuário (nome = nome de logon do usuário).
Se você não tiver privilégios de ligação de pacotes, precisará pedir ao administrador do Db2 autorização para ligação de pacotes. Com essa autoridade de associação de pacote, conecte-se ao banco de dados e busque dados, o que criará automaticamente o pacote. Posteriormente, o administrador pode revogar a autoridade de associação de empacotamento. Além disso, posteriormente, o administrador pode "vincular cópia" do pacote a outras coleções, para aumentar a simultaneidade, corresponder melhor aos seus padrões internos sobre onde os pacotes devem ser associados e assim por diante.
Ao se conectar ao IBM Db2 para z/OS, o administrador Db2 pode executar as etapas a seguir.
Conceda autoridade para associar um novo pacote ao usuário com um dos seguintes comandos:
- GRANT BINDADD ON SYSTEM TO <authorization_name>
- GRANT PACKADM ON <collection_name> TO <authorization_name>
Usando o Power Query, conecte-se ao banco de dados IBM Db2 e recupere uma lista de esquemas, tabelas e exibições. O conector de banco de dados IBM Db2 do Power Query criará automaticamente o pacote NULLID.MSCS001 e, em seguida, concederá permissão de execução do pacote para o público.
Revogue a autoridade para associar um novo pacote ao usuário com um dos seguintes comandos:
- REVOKE BINDADD FROM <authorization_name>
- REVOKE PACKADM ON <collection_name> FROM <authorization_name>
Ao se conectar ao IBM Db2 para Linux, Unix ou Windows, o administrador Db2 pode executar as etapas a seguir.
GRANT BINDADD ON DATABASE TO USER <authorization_name>.
Usando o Power Query, conecte-se ao banco de dados IBM Db2 e recupere uma lista de esquemas, tabelas e exibições. O conector do IBM Db2 para o Power Query criará automaticamente o pacote NULLID.MSCS001 e, em seguida, executará GRANT EXECUTE ON PACKAGE em público.
REVOGAR BINDADD NO BANCO DE DADOS DO <authorization_name> DE USUÁRIO.
GRANT EXECUTE ON PACKAGE <collection.package> TO USER <authorization_name>.
Ao se conectar ao IBM Db2 para i, o administrador Db2 pode executar as etapas a seguir.
WRKOBJ QSYS/CRTSQLPKG. Digite "2" para alterar a autoridade do objeto.
Alterar a autoridade de *EXCLUDE para PUBLIC ou <nome_de_autorização>.
Posteriormente, altere a autoridade de volta para *EXCLUDE.
SQLCODE erro de código -360
Ao tentar se conectar ao banco de dados IBM Db2, você pode encontrar o seguinte erro:
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
Essa mensagem de erro indica que você não colocou o valor certo para o nome do banco de dados.
Código de erro SQLCODE -1336
The specified host could not be found.
Verifique o nome duas vezes e confirme se o host está acessível. Por exemplo, use ping em um prompt de comando para tentar alcançar o servidor e garantir que o endereço IP esteja correto ou usar telnet para se comunicar com o servidor.
Erro de código SQLCODE -1037
Host is reachable, but is not responding on the specified port.
A porta é especificada no final do nome do servidor, separada por dois pontos. Se omitido, o valor padrão de 50000 será usado.
Para localizar a porta que o Db2 está usando para Linux, Unix e Windows, execute este comando:
db2 get dbm cfg | findstr SVCENAME
Procure na saída uma entrada para SVCENAME (e SSL_SVCENAME para conexões criptografadas TLS). Se esse valor for um número, essa será a porta. Caso contrário, faça referência cruzada ao valor com a tabela "serviços" do sistema. Normalmente, você pode encontrá-lo em /etc/services ou em c:\windows\system32\drivers\etc\services para Windows.
A captura de tela a seguir mostra a saída desse comando no Linux/Unix.
A captura de tela a seguir mostra a saída desse comando no Windows.
Determinar o nome do banco de dados
Para determinar o nome do banco de dados a ser usado:
No IBM i, execute
DSPRDBDIRE
.Uma das entradas terá um Local Remoto igual a *LOCAL. Essa entrada é a que deve ser usada.
Determinar o número da porta
O driver da Microsoft conecta-se ao banco de dados usando o protocolo DRDA (Arquitetura de Banco de Dados Relacional Distribuído). A porta padrão para DRDA é a porta 446. Experimente esse valor primeiro.
Para localizar com certeza em qual porta o serviço DRDA está em execução:
Execute o comando IBM i
WRKSRVTBLE
.Role a página para baixo até encontrar as entradas para o DRDA.
Entradas da tabela de serviço
Para confirmar se o serviço DRDA está ativo e se ele está escutando essa porta, execute
NETSTAT
.Escolha a opção 3 (para IPv4) ou a opção 6 (para IPv6).
Pressione F14 para ver os números da porta em vez de nomes e role até ver a porta em questão. Ele deve ter uma entrada com o estado “Escuta”.