thefile_fdw
모듈은 외국 데이터 래퍼를 제공합니다file_fdw
, 서버 파일 시스템의 데이터 파일에 액세스하거나 서버에서 프로그램을 실행하고 출력을 읽는 데 사용할 수 있습니다. 데이터 파일 또는 프로그램 출력은를 읽을 수있는 형식이어야합니다.COPY
; 보다COPY자세한 내용. 데이터 파일에 대한 액세스는 현재 읽기 전용입니다.
이 래퍼를 사용하여 생성 된 외국 테이블에는 다음 옵션이 있습니다.
filename
읽을 파일을 지정합니다. 상대 경로는 데이터 디렉토리와 관련이 있습니다. 어느 하나filename
또는프로그램
지정되어야하지만 둘 다를 지정하지 않아야합니다.
프로그램
실행될 명령을 지정합니다. 이 명령의 표준 출력은 마치 마치 읽습니다프로그램에서 복사
사용되었습니다. 어느 하나프로그램
또는filename
지정되어야하지만 둘 다를 지정하지 않아야합니다.
형식
과 동일한 데이터 형식을 지정합니다COPY
's형식
스포츠 토토.
헤더
데이터에 헤더 라인이 있는지 여부를 지정합니다.copy
's헤더
스포츠 토토.
Delimiter
데이터 구분자 문자를 지정합니다.copy
'sDelimiter
스포츠 토토.
QUOTE
와 같은 데이터 견적 문자를 지정합니다copy
'sQUOTE
스포츠 토토.
탈출
와 같은 데이터 탈출 문자를 지정합니다copy
's탈출
스포츠 토토.
NULL
데이터 null 문자열을 지정합니다.copy
'snull
스포츠 토토.
인코딩
데이터 인코딩을 지정합니다.copy
's인코딩
스포츠 토토.
copy
와 같은 스포츠 토토이 허용헤더
해당 값없이 지정하려면 외국 테이블 스포츠 토토 구문에는 모든 경우에 값이 있어야합니다. 활성화하려면COPY
일반적으로 값이없는 스포츠 토토은 값을 전달할 수 있습니다. 값은 모든 스포츠 토토이 부울이므로 값을 전달할 수 있습니다.
이 래퍼를 사용하여 생성 된 외국 테이블의 열에 다음 옵션이 있습니다.
force_not_null
이것은 부울 스포츠 토토입니다. 사실이라면, 열의 값이 널 문자열과 일치하지 않음을 지정합니다 (즉, 테이블 레벨NULL
스포츠 토토). 이것은 열을 나열하는 것과 동일한 효과가 있습니다COPY
'sforce_not_null
스포츠 토토.
Force_Null
이것은 부울 스포츠 토토입니다. 참이면 널 문자열과 일치하는 열의 값이로 반환됩니다.NULL
값이 인용 되더라도. 이 옵션이 없으면 NULL 문자열과 일치하는 인용되지 않은 값만로 반환됩니다.NULL
. 이것은 열을 나열하는 것과 동일한 효과가 있습니다copy
'sForce_Null
스포츠 토토.
COPY
'sForce_quote
옵션은 현재 지원되지 않습니다file_fdw
.
이 옵션은 옵션이 아닌 외국 테이블 또는 그 열에 대해서만 지정할 수 있습니다file_fdw
외국 데이터 포장지, 또는 래퍼를 사용한 서버 또는 사용자 매핑 옵션에서.
테이블 레벨 스포츠 토토을 변경하면 수퍼 유저가되거나 기본 역할의 권한이 있어야PG_READ_SERVER_FILES
(파일 이름 사용) 또는 기본 역할pg_execute_server_program
(프로그램을 사용하려면) 보안상의 이유로 : 특정 사용자만이 읽거나 실행되는 프로그램을 제어 할 수 있어야합니다. 원칙적으로 일반 사용자는 다른 옵션을 변경할 수 있지만 현재 지원되지는 않습니다.
지정할 때프로그램
옵션, 옵션 문자열은 쉘에 의해 실행됩니다. 신뢰할 수없는 소스에서 오는 명령에 인수를 전달 해야하는 경우 쉘에 특별한 의미가있는 문자를 벗기거나 탈출해야합니다. 보안상의 이유로, 고정 된 명령 문자열을 사용하거나 최소한 사용자 입력을 전달하지 않는 것이 가장 좋습니다.
사용을 사용하는 외국 테이블의 경우file_fdw
, 설명
실행할 파일의 이름을 표시하거나 실행할 프로그램을 표시합니다. 파일의 경우비용 끄기
지정되어 있으며 파일 크기 (바이트)도 표시됩니다.
예제 F.1. 스포츠 토토 CSV 로그에 대한 외국 테이블 만들기
명백한 용도 중 하나file_fdw
스포츠 토토 활동 로그를 쿼리 테이블로 사용할 수 있도록하는 것입니다. 이렇게하려면 먼저CSV 파일 로그인,여기서 우리가 전화 할 것pglog.csv
. 첫째, installfile_fdw
확장자 :
Extension File_FDW 생성;
그런 다음 외국 서버를 만듭니다 :
서버 생성 PGLOG 이외의 데이터 래퍼 파일 _fdw;
이제 외래 데이터 테이블을 만들 준비가되었습니다. 사용 사용외국 테이블 만들기
명령, 테이블의 열, CSV 파일 이름 및 그 형식을 정의해야합니다 :
외국 테이블 생성 pglog ( 시간대가있는 log_time timestamp (3), user_name 텍스트, database_name 텍스트, process_id 정수, Connection_from 텍스트, session_id 텍스트, session_line_num bigint, Command_tag 텍스트, 시간대가있는 session_start_time 타임 스탬프, virtual_transaction_id 텍스트, transaction_id bigint, error_severity 텍스트, sql_state_code 텍스트, 메시지 텍스트, 세부 텍스트, 힌트 텍스트, 내부_Query 텍스트, internal_query_pos 정수, 컨텍스트 텍스트, 쿼리 텍스트, query_pos 정수, 위치 텍스트, application_name 텍스트, backend_type 텍스트 ) 서버 pglog 옵션 (파일 이름 'log/pglog.csv', 형식 'CSV');
그게 다야 - 이제 로그를 직접 쿼리 할 수 있습니다. 물론 생산에서 로그 회전을 처리 할 수있는 방법을 정의해야합니다.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면