그file_fdw모듈은 외부 데이터 래퍼를 제공합니다file_fdw, 서버 파일 시스템의 데이터 파일에 액세스하거나 서버에서 프로그램을 실행하고 그 출력을 읽는 데 사용할 수 있습니다. 데이터 파일 또는 프로그램 출력은 다음에서 읽을 수 있는 형식이어야 합니다.복사본:; 보다복사10180_10240
이 래퍼를 사용하여 생성된 외부 테이블에는 다음 옵션이 있을 수 있습니다:
윈 토토 이름읽을 윈 토토을 지정합니다. 상대 경로는 데이터 디렉터리에 상대적입니다. 어느 하나윈 토토 이름또는프로그램반드시 지정해야 하지만 둘 다 지정할 수는 없습니다.
프로그램실행할 명령을 지정합니다. 이 명령의 표준 출력은 다음과 같이 읽혀집니다.프로그램에서 복사사용되었습니다. 어느 하나프로그램또는윈 토토 이름반드시 지정해야 하지만 둘 다 지정할 수는 없습니다.
형식다음과 같은 데이터 형식을 지정합니다.복사's형식옵션.
헤더데이터에 다음과 같은 헤더 라인이 있는지 여부를 지정합니다.복사의헤더옵션.
구분자다음과 동일하게 데이터 구분 문자를 지정합니다.복사의DELIMITER옵션.
인용문다음과 같은 데이터 인용 문자를 지정합니다.복사's인용문옵션.
탈출다음과 같은 데이터 이스케이프 문자를 지정합니다.복사's탈출옵션.
널다음과 같은 데이터 null 문자열을 지정합니다.복사의NULL옵션.
인코딩데이터 인코딩을 지정합니다. 다음과 동일합니다.복사's인코딩옵션.
on_error열의 입력 값을 데이터 유형으로 변환하는 중 오류가 발생할 때의 동작 방법을 지정합니다.복사'sON_ERROR옵션.
reject_limit열의 입력 값을 해당 데이터 유형으로 변환하는 동안 허용되는 최대 오류 수를 지정합니다.복사's거부_LIMIT옵션.
log_verbosity발신되는 메시지의 양을 지정합니다.file_fdw, 동일복사'sLOG_VERBOSITY옵션.
그동안 참고하세요복사다음과 같은 옵션을 허용합니다헤더해당 값 없이 지정하려면 외부 테이블 옵션 구문에 모든 경우에 값이 있어야 합니다. 활성화하려면복사옵션은 일반적으로 값 없이 작성되며 이러한 옵션은 모두 부울이므로 TRUE 값을 전달할 수 있습니다.
이 래퍼를 사용하여 생성된 외부 테이블의 열에는 다음 옵션이 있을 수 있습니다:
force_not_null이것은 불리언 옵션입니다. true인 경우 열의 값이 Null 문자열(즉, 테이블 수준과 일치하지 않아야 함을 지정합니다.널옵션). 이는 열을 나열하는 것과 동일한 효과를 갖습니다.복사의FORCE_NOT_NULL옵션.
force_null이것은 불리언 옵션입니다. true인 경우 null 문자열과 일치하는 열의 값이 다음과 같이 반환되도록 지정합니다.NULL값이 인용된 경우에도 마찬가지입니다. 이 옵션이 없으면 null 문자열과 일치하는 따옴표가 없는 값만 다음과 같이 반환됩니다.NULL. 이는 열을 나열하는 것과 동일한 효과를 갖습니다.복사의FORCE_NULL옵션.
복사'sFORCE_QUOTE옵션은 현재 지원되지 않습니다.file_fdw.
이 옵션은 외부 테이블이나 해당 열에 대해서만 지정할 수 있으며 다음 옵션에서는 지정할 수 없습니다.file_fdw외부 데이터 래퍼 또는 래퍼를 사용하는 서버 또는 사용자 매핑의 옵션에도 없습니다.
테이블 수준 옵션을 변경하려면 수퍼유저이거나 해당 역할의 권한이 있어야 합니다.pg_read_server_files(윈 토토 이름을 사용하기 위해) 또는 역할pg_execute_server_program(프로그램 사용), 보안상의 이유로: 특정 사용자만 어떤 파일을 읽을지 또는 어떤 프로그램을 실행할지 제어할 수 있어야 합니다. 원칙적으로 일반 사용자는 다른 옵션을 변경할 수 있지만 현재는 지원되지 않습니다.
지정할 때프로그램옵션, 옵션 문자열은 쉘에 의해 실행된다는 점을 명심하십시오. 신뢰할 수 없는 소스에서 오는 명령에 인수를 전달해야 하는 경우 셸에 특별한 의미가 있을 수 있는 문자를 제거하거나 이스케이프하도록 주의해야 합니다. 보안상의 이유로 고정된 명령 문자열을 사용하거나 최소한 사용자 입력을 전달하지 않는 것이 가장 좋습니다.
다음을 사용하는 외부 테이블의 경우file_fdw, 설명읽을 파일이나 실행할 프로그램의 이름을 표시합니다. 파일의 경우, 다음을 제외함비용 할인이 지정되면 윈 토토 크기(바이트 단위)도 표시됩니다.
예 F.1. PostgreSQL CSV 로그용 외부 테이블 생성
명확한 용도 중 하나file_fdwPostgreSQL 활동 로그를 쿼리용 테이블로 사용할 수 있도록 만드는 것입니다. 이렇게 하려면 먼저 다음과 같아야 합니다.CSV 윈 토토 로깅 중,여기에서는 이를 호출하겠습니다pglog.csv. 먼저 설치하세요.file_fdw확장으로:
확장 윈 토토 생성_fdw;
그런 다음 외부 서버를 생성하십시오:
서버 pglog 외부 데이터 래퍼 윈 토토 생성_fdw;
이제 외부 데이터 테이블을 생성할 준비가 되었습니다. 를 사용하여외부 테이블 생성명령을 사용하려면 테이블의 열, CSV 윈 토토 이름 및 형식을 정의해야 합니다.
외부 테이블 생성 pglog( 시간대가 있는 log_time 타임스탬프(3), user_name 텍스트, 데이터베이스_이름 텍스트, process_id 정수, 연결_텍스트에서, session_id 텍스트, session_line_num bigint, command_tag 텍스트, session_start_time 시간대가 포함된 타임스탬프, virtual_transaction_id 텍스트, transaction_id bigint, 오류_심각도 텍스트, sql_state_code 텍스트, 메시지 텍스트, 세부 텍스트, 힌트 텍스트, 내부 쿼리 텍스트, Internal_query_pos 정수, 컨텍스트 텍스트, 쿼리 텍스트, query_pos 정수, 위치 텍스트, application_name 텍스트, backend_type 텍스트, Leader_pid 정수, query_id bigint ) 서버 pglog OPTIONS(윈 토토 이름 'log/pglog.csv', 형식 'csv' );
그렇습니다. 이제 로그를 직접 쿼리할 수 있습니다. 물론 프로덕션에서는 로그 회전을 처리하는 방법을 정의해야 합니다.
예 F.2. 열에 대한 옵션을 사용하여 외부 테이블 생성
설정하려면force_null열 옵션을 사용하려면옵션키워드.
외국 테이블 영화 만들기( 코드 문자(5)는 NULL이 아닙니다. 제목 텍스트는 NULL이 아닙니다. 평가 텍스트 옵션(force_null 'true') ) 서버 film_server OPTIONS(윈 토토 이름 'films/db.csv', 형식 'csv' );
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.