IBM Db2 데이터베이스
요약
항목 | 묘사 |
---|---|
배포 상태 | 일반 공급 |
제품 | 엑셀 Power BI (의미론적 모델) Power BI(데이터 흐름) 패브릭(데이터플로우 Gen2) Power Apps (데이터 플로우) Dynamics 365 Customer Insights |
지원되는 인증 유형 | 기본 데이터베이스 Windows |
함수 참조 설명서 | DB2. 데이터베이스 |
메모
일부 기능은 한 제품에 있을 수 있지만 배포 일정 및 호스트별 기능으로 인해 다른 기능은 없을 수 있습니다.
필수 구성 요소
기본적으로 IBM Db2 데이터베이스 커넥터는 Microsoft 드라이버를 사용하여 데이터에 연결합니다. 파워 쿼리 데스크톱의 고급 옵션에서 IBM 드라이버를 사용하도록 선택하는 경우 먼저 데이터에 연결하는 데 사용되는 컴퓨터에 .NET용 IBM Db2 드라이버를 설치해야 합니다. 이 드라이버의 이름은 수시로 변경되므로 .NET에서 작동하는 IBM Db2 드라이버를 설치해야 합니다. .NET용 IBM Db2 드라이버를 다운로드하고 설치 및 구성하는 방법에 대한 지침은 초기 버전 11.5 클라이언트 및 드라이버를 다운로드하려면 을 참조하십시오. 추가 정보: 드라이버 제한IBM Db2 드라이버가 설치되어 있는지
지원되는 기능
- 수입
- DirectQuery(Power BI 의미 체계 모델)
- 고급 옵션
- 드라이버(IBM 또는 Microsoft)
- 명령 시간 제한(분)
- 패키지 모음
- SQL 문
- 관계 열 포함
- 전체 계층을 사용하여 탐색
파워 쿼리 데스크톱에서 IBM Db2 데이터베이스에 연결
연결을 만들려면 다음 단계를 수행합니다.
데이터 가져오기
IBM Db2 데이터베이스 옵션을 선택합니다.IBM Db2 서버를 Server에 연결하도록 지정합니다. 포트가 필요한 경우 serverName:Port
형식을 사용하여 지정합니다. 여기서 포트 포트 번호입니다. 또한 액세스하려는 IBM Db2 데이터베이스를 Database에 입력합니다. 이 예제에서는 서버 이름과 포트가TestIBMDb2server.contoso.com:4000
이고, 액세스 중인 IBM Db2 데이터베이스가NORTHWD2
입니다.Power BI Desktop에서 연결할 때, 가져오기 또는 DirectQuery 데이터 연결 모드를 선택하세요. 다음 예제 단계의 나머지 단계에서는 데이터 연결 가져오기 모드를 사용합니다. DirectQuery에 대해 더 알아보려면 Power BI Desktop에서 DirectQuery 사용으로 이동하세요.
메모
기본적으로 IBM Db2 데이터베이스 대화 상자는 로그인하는 동안 Microsoft 드라이버를 사용합니다. IBM 드라이버를 사용하려면 고급 옵션 열고 IBM선택합니다. 추가 정보: 고급 옵션을 사용하여 연결
DirectQuery 데이터 연결 모드로 선택하면 고급 옵션의 SQL 문 사용하지 않도록 설정됩니다. DirectQuery는 현재 IBM Db2 커넥터에 대한 네이티브 데이터베이스 쿼리 위에 쿼리 푸시다운을 지원하지 않습니다.
확인을 선택하십시오.
이 IBM Db2 데이터베이스에 처음 연결하는 경우 사용할 인증 유형을 선택하고 자격 증명을 입력한 다음 연결선택합니다. 인증에 대한 자세한 내용은 데이터 원본 인증으로 이동하십시오.
기본적으로 파워 쿼리는 암호화된 연결을 사용하여 IBM Db2 데이터베이스에 연결하려고 시도합니다. 암호화된 연결을 사용하여 파워 쿼리를 연결할 수 없는 경우 "연결할 수 없음" 대화 상자가 나타납니다. 암호화되지 않은 연결을 사용하여 연결하려면 확인선택합니다.
탐색기에서 필요한 데이터를 선택한 다음, 데이터를 로드하려면 로드를 선택하거나, 데이터를 변환하려면 데이터 변환를 선택합니다.
에서 선택합니다.
파워 쿼리 Online에서 IBM Db2 데이터베이스에 연결
연결을 만들려면 다음 단계를 수행합니다.
파워 쿼리 - 데이터 원본 페이지에 연결 페이지에서 IBM Db2 데이터베이스 옵션을 선택합니다.
Server에 연결할 IBM Db2 서버를 지정합니다. 포트가 필요한 경우 serverName:Port
형식을 사용하여 지정합니다. 여기서 포트 포트 번호입니다. 액세스하려는 IBM Db2 데이터베이스를 Database에 입력합니다. 이 예제에서 서버 이름 및 포트는TestIBMDb2server.contoso.com:4000
있으며 액세스 중인 IBM Db2 데이터베이스는NORTHWD2
온-프레미스 데이터 게이트웨이의 이름을 선택합니다.
메모
IBM Db2 데이터베이스가 로컬 네트워크에 있든 온라인이든 관계없이 이 커넥터에 대한 온-프레미스 데이터 게이트웨이를 선택해야 합니다.
이 IBM Db2 데이터베이스에 처음 연결하는 경우 인증 종류연결에 대한 자격 증명 유형을 선택합니다. Windows 인증 대신 IBM Db2 데이터베이스에서 만든 계정을 사용하려는 경우 기본 선택합니다.
자격 증명을 입력합니다.
암호화된 연결 사용을 선택하여 암호화된 연결을 사용하거나, 암호화되지 않은 연결을 사용하려면 옵션을 선택 해제하십시오.
다음 선택하여 계속합니다.
탐색기필요한 데이터를 선택한 다음, 데이터 변환 선택하여 파워 쿼리 편집기에서 데이터를 변환합니다.
고급 옵션을 사용하여 연결
파워 쿼리는 필요한 경우 쿼리에 추가할 수 있는 고급 옵션 집합을 제공합니다.
다음 표에서는 파워 쿼리에서 설정할 수 있는 모든 고급 옵션을 나열합니다.
고급 옵션 | 묘사 |
---|---|
운전사 | IBM Db2 데이터베이스에 연결하는 데 사용되는 드라이버를 결정합니다. 선택 항목은 IBM 및 Windows(기본값)입니다. IBM 드라이버를 선택하는 경우 먼저 .NET용 IBM Db2 드라이버가 컴퓨터에 설치되어 있는지 확인해야 합니다. 이 옵션은 파워 쿼리 데스크톱에서만 사용할 수 있습니다. 자세한 정보: IBM Db2 드라이버가 설치되어 있는지 확인 |
명령 시간 제한(분) | 연결이 10분(기본 시간 제한)보다 오래 지속되는 경우 다른 값을 분 단위로 입력하여 연결을 더 오래 열어 둘 수 있습니다. |
묶음 모음 | 패키지를 찾을 위치를 지정합니다. 패키지는 SQL 문을 처리할 때 Db2에서 사용하는 제어 구조이며 필요한 경우 자동으로 만들어집니다. 기본적으로 이 옵션은 NULLID 값을 사용합니다. Microsoft 드라이버를 사용하는 경우에만 사용할 수 있습니다. 추가 정보: DB2 패키지: 개념, 예제 및 일반적인 문제 |
SQL 문 | 자세한 내용은 네이티브 데이터베이스 쿼리사용하여 데이터베이스에서 데이터를 가져옵니다. |
관계 열 포함 | 선택한 경우 다른 테이블과 관계가 있을 수 있는 열을 포함합니다. 이 상자가 지워지면 해당 열이 표시되지 않습니다. |
전체 계층을 사용하여 탐색 | 이 옵션을 선택하면 탐색기는 연결하려는 데이터베이스에 있는 테이블의 전체 계층 구조를 표시합니다. 삭제되면 네비게이터는 열과 행에 데이터가 포함된 테이블만 표시합니다. |
필요한 고급 옵션을 선택한 후, 파워 쿼리 데스크톱에서는 확인 을 선택하거나 파워 쿼리 온라인에서는 다음 을 선택하여 IBM Db2 데이터베이스에 연결합니다.
문제 및 제한 사항
드라이버 제한 사항
Microsoft 드라이버는 "ADO.NET Provider for DB2"라고 하는 Microsoft Host Integration Server에서 사용되는 것과 동일합니다. IBM 드라이버는 .NET에서 작동하는 IBM Db/2 드라이버입니다. 이 드라이버의 이름은 수시로 변경되므로 OLE/DB, ODBC 또는 JDBC에서 작동하는 IBM Db2 드라이버와는 다른 .NET에서 작동하는 드라이버인지 확인합니다.
파워 쿼리 데스크톱을 사용하는 경우 Microsoft 드라이버(기본값) 또는 IBM 드라이버를 사용하도록 선택할 수 있습니다. 현재 파워 쿼리 온라인은 Microsoft 드라이버만 사용합니다. 각 드라이버에는 제한 사항이 있습니다.
- Microsoft 드라이버
- Power BI Desktop의 2024년 12월 릴리스 이상에서만 TLS(전송 계층 보안)를 지원합니다.
- IBM 드라이버
- IBM Db2 데이터베이스 커넥터는 .NET용 IBM Db2 드라이버를 사용하는 경우 메인프레임 또는 IBM i 시스템에서 작동하지 않습니다.
- DirectQuery를 지원하지 않음
Microsoft는 Microsoft 드라이버에 대한 지원을 제공하지만 IBM 드라이버에 대해서는 지원하지 않습니다. 그러나 IT 부서가 컴퓨터에 이미 설정하고 구성한 경우 IT 부서는 IBM 드라이버 문제를 해결하는 방법을 알아야 합니다.
DirectQuery에서 지원되지 않는 네이티브 쿼리
파워 쿼리 데스크톱에서 데이터 연결 모드로 DirectQuery를 선택하면 고급 옵션의 SQL 문 텍스트 상자가 비활성화됩니다. 파워 쿼리 IBM Db2 커넥터는 현재 네이티브 데이터베이스 쿼리 위에 있는 쿼리 푸시다운을 지원하지 않으므로 사용하지 않도록 설정되었습니다.
문제 해결
IBM Db2 드라이버가 설치되어 있는지 확인합니다.
파워 쿼리 데스크톱에 IBM Db2 드라이버를 사용하도록 선택하는 경우 먼저 머신에서 드라이버를 다운로드, 설치 및 구성해야 합니다. IBM Db2 드라이버가 설치되었는지 확인하려면 다음을 수행합니다.
컴퓨터에서 Windows PowerShell을 엽니다.
다음 명령을 입력합니다.
[System.Data.Common.DbProviderFactories]::GetFactoryClasses() | ogv
열리는 대화 상자의 InvariantName 열에 사용자는 다음 이름을 보게 됩니다.
IBM.Data.DB2
이 이름이 InvariantName 열에 있는 경우 IBM Db2 드라이버가 올바르게 설치 및 구성되었습니다.
SQLCODE -805 및 SQLCODE -551 오류 코드
IBM Db2 데이터베이스에 연결을 시도할 때 NULLID
또는 다른 컬렉션(파워 쿼리 패키지 연결 구성에 지정됨)에서 패키지를 찾을 수 없음을 나타내는 일반적인 오류 SQLCODE -805가 발생할 수 있습니다. 패키지 바인딩 권한이 없기 때문에 패키지를 만들 수 없음을 나타내는 일반적인 오류 SQLCODE -551이 발생할 수도 있습니다.
일반적으로 SQLCODE -805 뒤에 SQLCODE -551이 표시되지만 두 번째 예외만 표시됩니다. 실제로 문제는 동일합니다. 패키지를 NULLID
또는 지정된 컬렉션에 바인딩할 권한이 없습니다.
일반적으로 대부분의 IBM Db2 관리자는 특히 IBM z/OS(메인프레임) 또는 IBM i(AS/400) 환경에서 최종 사용자에게 바인딩 패키지 권한을 제공하지 않습니다. Linux, Unix 또는 Windows의 Db2는 사용자 계정에 기본적으로 바인딩 권한이 있으므로 사용자의 컬렉션에 MSCS001(커서 안정성) 패키지를 만듭니다(이름 = 사용자 로그인 이름).
바인딩 패키지 권한이 없는 경우 Db2 관리자에게 패키지 바인딩 권한을 요청해야 합니다. 이 패키지 바인딩 기관을 사용하여 데이터베이스에 연결하고 데이터를 가져와 패키지를 자동으로 만듭니다. 그 후 관리자는 패키징 바인딩 기관을 해지할 수 있습니다. 또한 나중에 관리자는 패키지를 다른 컬렉션에 "바인딩"하여 동시성을 높이고 패키지가 바인딩된 위치에 대한 내부 표준과 더 잘 일치하도록 할 수 있습니다.
z/OS용 IBM Db2에 연결할 때 Db2 관리자는 다음 단계를 수행할 수 있습니다.
다음 명령 중 하나를 사용하여 사용자에게 새 패키지를 바인딩할 권한을 부여합니다.
- 시스템에 BINDADD를 부여하다 <authorization_name>
- < COLLECTION_NAME> 에 대해 PACKADM 권한을 <AUTHORIZATION_NAME> 에게 부여
파워 쿼리를 사용하여 IBM Db2 데이터베이스에 연결하고 스키마, 테이블 및 뷰 목록을 검색합니다. 파워 쿼리 IBM Db2 데이터베이스 커넥터는 패키지 NULLID.MSCS001을 자동으로 생성하고, 이 패키지에 대한 실행 권한을 공용으로 부여합니다.
다음 명령 중 하나를 사용하여 사용자에게 새 패키지를 바인딩하도록 권한을 취소합니다.
- < 권한명>에서 BINDADD 권한 해지
- < collection_name>에 대한 PACKADM 권한을 <authorization_name>로부터 취소하십시오.
Linux, Unix 또는 Windows용 IBM Db2에 연결할 때 Db2 관리자는 다음 단계를 수행할 수 있습니다.
데이터베이스에서 BINDADD 권한을 사용자 <authorization_name>에게 부여합니다.
파워 쿼리를 사용하여 IBM Db2 데이터베이스에 연결하고 스키마, 테이블 및 뷰 목록을 검색합니다. 파워 쿼리 IBM Db2 커넥터는 NULLID.MSCS001 패키지를 자동으로 생성하고, 해당 패키지에 대한 실행 권한을 공개 사용자에게 부여합니다.
데이터베이스에 대한 사용자 <authorization_name>의 BINDADD 권한을 해지합니다.
GRANT EXECUTE ON PACKAGE <collection.package> TO USER <authorization_name>. (사용자에게 실행 권한 부여)
i용 IBM Db2에 연결할 때 Db2 관리자는 다음 단계를 수행할 수 있습니다.
WRKOBJ QSYS/CRTSQLPKG. 개체 권한을 변경하려면 "2"를 입력합니다.
권한을 *EXCLUDE에서 PUBLIC 혹은 <authorization_name>으로 변경합니다.
그런 다음 권한을 다시 *EXCLUDE로 변경합니다.
SQLCODE -360 오류 코드
IBM Db2 데이터베이스에 연결을 시도할 때 다음 오류가 발생할 수 있습니다.
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
이 오류 메시지는 데이터베이스 이름에 올바른 값을 넣지 않았음을 나타냅니다.
SQLCODE -1336 오류 코드
The specified host could not be found.
이름을 다시 확인하고 호스트에 연결할 수 있는지 확인합니다. 예를 들어 명령 프롬프트에서 ping 사용하여 서버에 연결하고 IP 주소가 올바른지 확인하거나 텔넷 사용하여 서버와 통신합니다.
SQLCODE -1037 오류 코드
Host is reachable, but is not responding on the specified port.
포트는 콜론으로 구분된 서버 이름의 끝에 지정됩니다. 생략하면 기본값인 50000이 사용됩니다.
Db2가 Linux, Unix 및 Windows에 사용하는 포트를 찾으려면 다음 명령을 실행합니다.
db2 get dbm cfg | findstr SVCENAME
출력에서 SVCENAME 항목을 찾고, TLS 암호화 연결의 경우 SSL_SVCENAME 항목을 찾습니다. 이 값이 숫자인 경우 포트입니다. 그렇지 않으면 시스템의 "서비스" 테이블과 값을 대조하여 확인합니다. 일반적으로 Windows용 /etc/services 또는 c:\windows\system32\drivers\etc\services에서 찾을 수 있습니다.
다음 스크린샷은 Linux/Unix에서 이 명령의 출력을 보여줍니다.
이미지
다음 스크린샷은 Windows에서 이 명령의 출력을 보여 줍니다.
Windows에서 db2 명령 실행 결과를 포함한 이미지
데이터베이스 이름 확인
사용할 데이터베이스 이름을 확인하려면 다음을 수행합니다.
IBM i에서
DSPRDBDIRE
실행합니다.항목 중 하나에는 *LOCAL및 원격 위치이 있습니다. 이 항목은 사용할 항목입니다.
포트 번호 확인
Microsoft 드라이버는 DRDA(Distributed Relational Database Architecture) 프로토콜을 사용하여 데이터베이스에 연결합니다. DRDA의 기본 포트는 포트 446입니다. 먼저 이 값을 사용해 보세요.
DRDA 서비스가 실행 중인 포트를 확실히 찾으려면 다음을 수행합니다.
IBM i 명령
WRKSRVTBLE
실행합니다.DRDA에 대한 항목을 찾을 때까지 아래로 스크롤합니다.
DRDA 서비스가 해당 포트에서 수신 대기 중인지 확인하려면
NETSTAT
실행합니다.옵션 3(IPv4의 경우) 또는 옵션 6(IPv6)을 선택합니다.
F14 키를 눌러 이름 대신 포트 번호를 확인하고 해당 포트가 표시될 때까지 스크롤합니다. "수신 대기" 상태의 항목이 있어야 합니다.
IP 연결 상태