2016-09-28 3 views
0

현재 db2cli 유틸리티 및 ODBC에서 dashDB 데이터베이스를 사용하려고합니다 (값은 dashDB 웹 콘솔의 연결/연결 정보에서옵니다). 이 순간에 나는 완벽 SELECT 또는 INSERT 진술을 할 수 있으며, 명령에 내가 만든 사용자 정의 테이블에서 데이터, 감사를 가져 오기 : 이제dashDB 및 DB2로드 조작

db2cli execsql -connstring "DRIVER={IBM DB2 ODBC DRIVER - IBMDBCL1}; DATABASE=BLUDB; HOSTNAME=yp-dashdb-small-01-lon02.services.eu-gb.bluemix.net; PORT=50000; PROTOCOL=TCPIP; UID=xxxxxx; PWD=xxxxxx" -inputsql /tmp/input.sql 

나는이 db2cli 유틸리티를 통해 DB2의 LOAD 작업을하려고하지만, 계속 진행하는 방법이나 심지어 그렇게 할 수 있는지 여부를 모르겠습니다. 목표는 ODBC를 통해서만 내 측면에서 DB2 dashDB 데이터베이스를 카탈로그하지 않고 파일에서 데이터를 가져 오는 것입니다. 이런 종류의 조작이 가능한지 (db2cli 또는 다른 유틸리티를 사용하여) 누군가가 알 수 있습니까?

답변

0

이 불가능하다. LOAD은 SQL 문이 아니므로 ODBC와 같은 SQL 인터페이스를 통해 실행할 수 없으므로 DB2 CLP를 사용해야 만 카탈로그 데이터베이스가 필요합니다.

ADMIN_CMD()은 SQL 인터페이스를 통해 호출 할 수 있지만 입력 파일은 서버에 있어야하며 워크 스테이션에 저장된 파일에는 사용할 수 없습니다.

JDBC가 옵션 인 경우 CLPPlus IMPORT command을 사용할 수 있습니다.

+0

좋아요, 이것으로 제가 본 것을 확인합니다. 입력 파일은 서버에 있어야합니다. 테스트 목적으로, 나는 내 컴퓨터에서 서버로 파일을 복사 할 수있는 dashDB Local을 사용하여 SP를 통해 데이터를 성공적으로로드했지만, 불행히도 이것은 Bluemix dashDB로 수행 할 수없는 수동 예비 단계입니다 (이것이 왜 사실이 SP에 붙어 있습니다 ^^). 나는 이제 JDBC 옵션을 시도 할 것이다. 그건 그렇고, 당신의 대답에 대해 대단히 감사합니다! – Steph

+0

일부 테스트 후에 CLPPLus 가져 오기 명령은 매력처럼 작동합니다. 로컬 파일을 Bluemix dashDB 테이블로 가져올 수 있습니다! – Steph

0

REST API을 사용하여 데이터를로드 할 수 있습니다.

예 :

curl --user dashXXX:XXXXXX -H "Content-Type: multipart/form-data" -X POST -F [email protected]"/home/yogesh/Downloads/datasets/order_details_0.csv" "https://yp-dashdb-small-01-lon02.services.eu-gb.bluemix.net:8443/dashdb-api/load/local/del/dashXXX.ORDER_DETAILS?hasHeaderRow=true&timestampFormat=YYYY-MM-DD%20HH:MM:SS.U" 
+0

빠른 응답을 보내 주셔서 감사합니다.이 테스트를 시도하지만 입력 파일의 제한은 20MB 정도입니다. dashDB 서버의 curl 유틸리티 SYSPROC.ADMIN_CMD 저장 프로 시저를 사용하여 흥미로운 것을 발견했습니다.이 프로 시저를 사용하면 ODBC 연결을 사용하여 LOAD 또는 IMPORT를 수행 할 수 있습니다. – Steph

0

REST API를 사용했지만 크기 제한이 없습니다. dashDB local (warehouse db)의 1.11 버전에는 외부 테이블이 포함되었습니다. 파일이 컨테이너에있는 한로드 할 수 있습니다. 또한 DB2로드는 외부 테이블로드가 수행되지 않는로드가 완료 될 때까지 테이블을 잠급니다.