하나의 dashdb 데이터베이스에 일부 테이블을 복사하여 dashdb 데이터베이스를 분리해야합니다. 일반적으로 CSV 파일을 하나에서 내보내고 웹 콘솔을 사용하여 다른 파일로로드합니다. 그러나 특히 한 테이블에는 CLOB 열이 있으므로 ixf + lob 파일로 내보내고 가져와야합니다. 불행히도 clpplus가 데이타베이스가있는 서버로만 내보낼 수있는 것처럼 보이기 때문에 쉽게 접근 할 수 없습니다. (접근 할 수는 없지만) 접근 할 수있는 방법이 없습니다. lob 파일을 내 보냅니다. 누구든지 이것을 성취하는 최선의 방법을 알고 있습니까?dashdb에서 IXF 및 LOB 파일을 내보내는 방법
답변
실제로 CLOB 값이 32K보다 작 으면 EXPORT에 제공하는 SELECT 문의 일부로 VARCHAR 값으로 변환 할 수 있습니다.
LOB 파일을 내보내려면 dashDB 인스턴스 내부의 사용자 홈 디렉토리에 파일을 작성한 다음/home REST API를 사용하여 파일을 다운로드하십시오. 컬 포함 : https://developer.ibm.com/static/site-id/85/api/dashdb-analytics/
또 다른 옵션은 LOB가있는 테이블을 로컬 시스템으로 반출 한 다음 다른 dashDB로 반입하는 것입니다.
dashDB 테이블을 로컬 클라이언트로 내보내는 한 가지 방법은 클라이언트 시스템의 DB2 명령 행 처리기 (CLP)에서 EXPORT 명령을 실행하는 것입니다. 이렇게하려면 다음과 같이 클라이언트에 dashDB 데이터베이스를 카탈로그 화 한 후 IBM Data Server Runtime Client를 설치해야합니다 LOB C 럼이되도록
이제CATALOG TCPIP NODE mydash REMOTE dashdb-txn-small-yp-lon02-99.services.eu-gb.bluemix.net SERVER 50000;
CATALOG DATABASE bludb AS dash1 AT NODE mydash;
CONNECT TO dash1 USER <username> USING <password>;
이,의는 "MYTABLE"라는 테이블을 내보낼 수 있습니다 별도의 파일로 작성 :
export to mytable.del of del
lobfile mylobs
modified by lobsinfile
select * from mytable;
이 내보내기 명령은 mytable.del 및 mylobs.001.lob 파일을 생성합니다. mytable.del 파일에는 각 값의 오프셋과 길이를 지정하는 파일 mylobs.001.lob에 대한 포인터가 들어 있습니다.
LOB 데이터가 너무 커서 단일 파일에 들어 가지 않으면 추가 파일 mylobs.002.lob, mylobs.003.lob 등이 작성됩니다.
내보내기 된 데이터는 압축되지 않은 형식으로 dashDB에서 로컬 클라이언트로 전송되므로 데이터 볼륨에 따라 다소 시간이 걸릴 수 있습니다. .DEL 및 .LOB 파일에는 노트북이나 로컬 서버, 클라이언트 시스템에있는 경우
, 당신은 LOB 열이있는 테이블에이 파일을 섭취하기 위해 IMPORT 명령을 사용할 수 있습니다. CLP에서 먼저로드 할 dashDB 데이터베이스에 연결합니다.
원본 테이블이 mytable.del 및 mylobs.001.lob 파일로 내보내졌으며이 파일이 이제 클라이언트 시스템의/mydata 디렉토리에 있다고 가정합니다. 그런 다음이 명령은 대상 테이블에 데이터 및 LOB를로드합니다 :
IMPORT FROM /mydata/mytable.del OF DEL
LOBS FROM /mydata
MODIFIED BY LOBSINFILE
INSERT INTO mytable2;
이 IMPORT 명령
은 클라이언트 시스템에서 DB2 명령 행 프로세서에서 실행할 수 있습니다.