thefile_fdw
모듈은 외국 데이터 래퍼를 제공합니다file_fdw
, 서버 파일 시스템의 데이터 파일에 액세스하거나 서버에서 프로그램을 실행하고 출력을 읽는 데 사용할 수 있습니다. 데이터 파일 또는 프로그램 출력은를 읽을 수있는 형식이어야합니다.복사
; 보다copy자세한 내용. 데이터 파일에 대한 액세스는 현재 읽기 전용입니다.
이 래퍼를 사용하여 생성 된 외국 테이블에는 다음 옵션이 있습니다.
filename
읽을 파일을 지정합니다. 상대 경로는 데이터 디렉토리와 관련이 있습니다.filename
또는프로그램
지정되어야하지만 둘 다를 지정하지 않아야합니다.
프로그램
실행할 명령을 지정합니다. 이 명령의 표준 출력은 마치 마치 읽습니다프로그램에서 복사
사용되었습니다. 어느 하나프로그램
또는filename
지정되어야하지만 둘 다를 지정하지 않아야합니다.
형식
과 같은 데이터 형식을 지정합니다copy
's형식
옵션.
헤더
데이터에 헤더 라인이 있는지 여부를 지정합니다.copy
's헤더
옵션.
Delimiter
데이터 구분자 문자를 지정합니다.copy
'sDelimiter
옵션.
QUOTE
과 같은 데이터 견적 문자를 지정합니다copy
'sQUOTE
옵션.
탈출
와 같은 데이터 탈출 문자를 지정합니다copy
's탈출
옵션.
NULL
데이터 null 문자열을 지정합니다.copy
'snull
옵션.
인코딩
데이터 인코딩을 지정합니다.copy
's인코딩
옵션.
copy
와 같은 옵션이 허용헤더
해당 값없이 지정하려면 외국 테이블 옵션 구문에는 모든 경우에 값이 있어야합니다. 활성화하려면copy
일반적으로 값없이 작성된 옵션은 모든 옵션이 부울이므로 True 값을 전달할 수 있습니다.
이 래퍼를 사용하여 생성 된 외국 테이블의 열에 다음 옵션이 있습니다.
force_not_null
이것은 부울 옵션입니다. 사실이라면, 열의 값이 널 문자열과 일치하지 않음을 지정합니다 (즉, 테이블 레벨NULL
옵션). 이것은 열을 나열하는 것과 동일한 효과가 있습니다copy
'sforce_not_null
옵션.
Force_Null
이것은 부울 옵션입니다. 참이면 널 문자열과 일치하는 열의 값이로 반환됩니다.null
값이 인용 되더라도. 이 옵션이 없으면 NULL 문자열과 일치하는 인용되지 않은 값만로 반환됩니다.null
. 이것은 열을 나열하는 것과 동일한 효과가 있습니다copy
'sForce_null
옵션.
copy
'sOIDS
andForce_quote
옵션은 현재 지원되지 않습니다file_fdw
.
이 옵션은 옵션이 아닌 외국 테이블 또는 그 열에 대해서만 지정할 수 있습니다file_fdw
외국 데이터 포장지 또는 래퍼를 사용한 서버 또는 사용자 매핑 옵션에서.
테이블 레벨 옵션을 변경하려면 보안상의 이유로 슈퍼 사용자 권한이 필요합니다. 슈퍼 사용자 만 읽거나 실행되는 프로그램을 제어 할 수 있어야합니다. 원칙적으로 비 uperusers는 다른 옵션을 변경할 수 있지만 현재는 지원되지 않습니다.
지정할 때프로그램
옵션, 옵션 문자열은 쉘에 의해 실행됩니다. 신뢰할 수없는 소스에서 오는 명령에 인수를 전달 해야하는 경우 쉘에 특별한 의미가있는 문자를 벗기거나 탈출해야합니다.
사용을 사용하는 외국 테이블의 경우file_fdw
, 설명
실행할 파일의 이름을 표시하거나 실행할 프로그램을 표시합니다. 파일의 경우비용 끄기
지정되어 있으며 파일 크기 (바이트)도 표시됩니다.
예제 F.1. 무지개 토토 CSV 로그에 대한 외국 테이블 만들기
명백한 용도 중 하나file_fdw
무지개 토토 활동 로그를 쿼리 테이블로 사용할 수 있도록하는 것입니다. 이렇게하려면 먼저CSV 파일에 로그여기서 우리가 전화 할 것입니다pglog.csv
. 첫째, installfile_fdw
확장자 :
Extension File_FDW 만들기;
그런 다음 외국 서버 생성 :
서버 생성 PGLOG 이외의 데이터 래퍼 파일 _fdw;
이제 외국 데이터 테이블을 만들 준비가되었습니다. 사용 사용외국 테이블 만들기
명령에 따라 테이블의 열, CSV 파일 이름 및 그 형식을 정의해야합니다.
외국 테이블 생성 pglog (
그게 다야 - 이제 로그를 직접 쿼리 할 수 있습니다. 물론 생산에서 로그 회전을 처리 할 수있는 방법을 정의해야합니다.