기본 콘텐츠로 건너뛰기 보완적인 콘텐츠로 건너뛰기

PostgreSQL

이 섹션에서는 PostgreSQL 대상 커넥터를 사용하여 PostgreSQL 대상에 대한 연결을 구성하는 방법을 설명합니다. PostgreSQL은 복제 작업에서만 대상으로 사용할 수 있습니다. PostgreSQL 대상에 연결하려면 먼저 데이터베이스에서 필요한 권한을 구성해야 합니다. 데이터 이동 게이트웨이를 통해 PostgreSQL에 연결하는 경우 드라이버 설정에 설명된 대로 드라이버도 설치해야 합니다.

PostgreSQL 커넥터 사용 시 제한 사항 및 고려 사항에 대한 자세한 내용은 제한 사항 및 고려 사항을 참조하십시오.

연결 속성 설정

이 섹션에서는 사용할 수 있는 연결 속성에 대해 설명합니다. 달리 명시되지 않는 한 모든 속성이 필요합니다.

데이터 대상

  • 데이터 게이트웨이: PostgreSQL 대상에 대한 연결을 테스트하는 데 사용할 데이터 이동 게이트웨이를 선택합니다. 이는 데이터 소스에 액세스하는 데 사용된 것과 동일한 게이트웨이여야 합니다.

    정보 메모
    • 데이터 이동 게이트웨이 2023.5.10 이상이 필요합니다.
    • 또한 데이터 이동 게이트웨이 컴퓨터에 적절한 드라이버를 설치해야 합니다. 자세한 내용은 아래 드라이버 설정을 참조하십시오.

  • 클라우드 공급자: 다음 중 하나를 적절하게 선택합니다.

      • PostgreSQL 온프레미스
      • Amazon Aurora
      • Azure Database for PostgreSQL - 유연한 서버
    • Amazon RDS for PostgreSQL의 경우.

      • Google Cloud SQL for PostgreSQL
      • Google Cloud AlloyDB for PostgreSQL
    • Microsoft Azure Database for PostgreSQL의 경우.

  • 호스트: PostgreSQL 데이터베이스가 설치된 컴퓨터의 호스트 이름 또는 IP 주소입니다.

  • 포트: 데이터베이스에 연결할 때 사용할 포트입니다. 기본값은 5432입니다.

계정 속성

사용자 이름비밀번호: PostgreSQL Server 데이터베이스에 액세스할 수 있는 권한이 부여된 사용자의 사용자 이름과 비밀번호입니다.

데이터베이스 속성

  • 데이터베이스 이름: 데이터베이스를 지정하는 데 사용할 수 있는 두 가지 방법이 있습니다.

    • 방법 1 - 목록에서 선택: 데이터베이스 로드를 클릭한 다음 데이터베이스를 선택합니다.
    • 방법 2 - 수동: 데이터베이스 이름을 수동으로 입력을 선택한 다음 데이터베이스 이름을 입력합니다.
  • SSL 모드: 다음 중 하나를 선택합니다.
    • disable - 성 및 비밀번호로만 연결합니다.
    • allow - 서버에서 요청하는 경우 암호화된 연결을 설정합니다.
    • prefer - 이것이 기본값입니다. 서버가 암호화된 연결을 지원하는 경우 암호화된 연결을 설정하고 암호화된 연결을 설정할 수 없는 경우 암호화되지 않은 연결로 대체합니다.
    • require - 서버가 암호화된 연결을 지원하는 경우 암호화된 연결을 설정합니다. 암호화된 연결을 설정할 수 없으면 연결 시도가 실패합니다.
    • Verify CA - Required와 유사하지만 구성된 CA 인증서에 대해 서버 CA(인증 기관) 인증서도 확인합니다. 일치하는 유효한 CA 인증서가 없으면 연결 시도가 실패합니다.
    • Verify Full - Verify CA과 유사하지만 서버가 클라이언트에게 보내는 인증서의 ID에 대해 클라이언트(즉, Data Movement gateway)가 서버에 연결하는 데 사용하는 호스트 이름을 확인하여 호스트 이름 ID 확인을 수행합니다. 클라이언트는 연결에 사용하는 호스트 이름이 서버 인증서의 일반 이름 값과 일치하는지 확인합니다. 불일치가 있으면 연결이 실패합니다.
  • 신뢰할 수 있는 인증서: PEM 서식의 클라이언트 인증서 파일을 발급한 CA(인증 기관)입니다.
  • 클라이언트 인증서: 서버에서 요청한 클라이언트 인증서를 업로드합니다.
  • 클라이언트 인증서 키: PEM 형식의 클라이언트 비공개 키 파일입니다.
  • CRL: CRL 인증서입니다. 이 파일에는 인증 기관에서 해지한 인증서가 포함되어 있습니다. 서버 인증서가 이 목록에 나타나면 연결이 실패합니다.
  • SSL 압축: 데이터를 암호화하기 전에 압축하려면 이 옵션을 선택합니다.
  • 최대 파일 크기(KB): PostgreSQL 대상 데이터베이스에 로드되기 전 CSV 파일의 최대 크기(KB)를 선택하거나 입력합니다. 기본값은 32000KB입니다.

내부 속성

내부 속성은 특별한 사용 사례를 위한 것이므로 대화 상자에 표시되지 않습니다. Qlik 지원 팀에서 지시한 경우에만 사용해야 합니다.

필드 오른쪽에 있는 새로 만들기취소 버튼을 사용하여 필요에 따라 속성을 추가하거나 제거합니다.

이름

연결의 표시 이름입니다.

전제 조건

필요한 권한

커넥터 설정에 지정된 사용자는 PostgreSQL 데이터베이스에 등록된 사용자여야 합니다.

또한 다음 권한을 부여해야 합니다.

  • 로그인 가능
  • 데이터베이스 만들기
정보 메모대상 스키마가 데이터베이스에 이미 존재하는 경우 "데이터베이스 만들기" 권한이 필요하지 않습니다.

드라이버 설정

드라이버 설치 유틸리티(권장)를 사용하거나 수동으로 driver를 설치할 수 있습니다. 수동 설치는 드라이버 설치 유틸리티에 문제가 발생하는 드문 경우에만 시도해야 합니다.

드라이버 설치 유틸리티를 사용하여 드라이버 설치

이 섹션에서는 필수 driver를 설치하는 방법에 대해 설명합니다. 이 프로세스에는 필수 driver를 자동으로 다운로드, 설치 및 구성하는 스크립트 실행이 포함됩니다. 필요에 따라 스크립트를 실행하여 driver를 업데이트하고 제거할 수도 있습니다.

  • Python 3.6 이상이 데이터 이동 게이트웨이 서버에 설치되어 있는지 확인합니다.

    Python은 대부분의 Linux 배포에 사전 설치되어 있습니다. 다음 명령을 실행하여 시스템에 설치된 Python 버전을 확인할 수 있습니다.

    python3 --version

driver다운로드하고 설치하려면:

  1. 데이터 이동 게이트웨이 컴퓨터에서 작업 디렉터리를 다음으로 변경합니다.

    opt/qlik/gateway/movement/drivers/bin

  2. 다음 명령을 실행합니다.

    구문:

    ./install postgres

    driver를 다운로드할 수 없는 경우(액세스 제한 또는 기술 문제로 인해) driver를 다운로드할 위치와 데이터 이동 게이트웨이 컴퓨터에서 복사할 위치를 알려 주는 메시지가 표시됩니다. 완료했으면 install postgres 명령을 다시 실행합니다.

    그렇지 않으면 driver에 대한 EULA가 표시됩니다.

  3. 다음 중 하나를 수행합니다.

    • [Enter] 키를 반복해서 눌러 EULA를 천천히 스크롤합니다.
    • 스페이스바를 반복해서 눌러 EULA를 빠르게 스크롤합니다.
    • q를 눌러 라이센스 텍스트를 종료하고 EULA 동의 옵션이 표시됩니다.
  4. 다음 중 하나를 수행합니다.

    • "y"를 입력하고 [Enter]를 눌러 EULA에 동의하고 설치를 시작합니다.
    • "n"을 입력하고 [Enter] 키를 눌러 EULA를 거부하고 설치를 종료합니다.
    • "v"를 입력하고 [Enter] 키를 눌러 EULA를 다시 봅니다.

  5. driver가 설치됩니다.

제공된 driver를 설치하기 전에 driver의 이전 버전을 제거하려면 업데이트 명령을 실행합니다.

driver를 다운로드하고 업데이트하려면:

  1. 데이터 이동 게이트웨이 컴퓨터에서 작업 디렉터리를 다음으로 변경합니다.

    opt/qlik/gateway/movement/drivers/bin

  2. 다음 명령을 실행합니다.

    구문:

    ./update postgres

    driver를 다운로드할 수 없는 경우(액세스 제한 또는 기술 문제로 인해) driver를 다운로드할 위치와 데이터 이동 게이트웨이 컴퓨터에서 복사할 위치를 알려 주는 메시지가 표시됩니다. 완료했으면 update postgres 명령을 다시 실행합니다.

    그렇지 않으면 driver에 대한 EULA가 표시됩니다.

  3. 다음 중 하나를 수행합니다.

    • [Enter] 키를 반복해서 눌러 EULA를 천천히 스크롤합니다.
    • 스페이스바를 반복해서 눌러 EULA를 빠르게 스크롤합니다.
    • q를 눌러 라이센스 텍스트를 종료하고 EULA 동의 옵션이 표시됩니다.
  4. 다음 중 하나를 수행합니다.

    • "y"를 입력하고 [Enter]를 눌러 EULA에 동의하고 설치를 시작합니다.
    • "n"을 입력하고 [Enter] 키를 눌러 EULA를 거부하고 설치를 종료합니다.
    • "v"를 입력하고 [Enter] 키를 눌러 EULA를 처음부터 검토합니다.
  5. 이전 driver가 제거되고 새 driver가 설치됩니다.

driver를 제거하려면 제거 명령을 실행합니다.

driver를 제거하려면:

  1. 이 커넥터를 사용하도록 구성된 모든 작업을 중지합니다.

  2. 데이터 이동 게이트웨이 컴퓨터에서 작업 디렉터리를 다음으로 변경합니다.

    opt/qlik/gateway/movement/drivers/bin

  3. 다음 명령을 실행합니다.

    구문:

    ./uninstall postgres

    driver이 제거됩니다.

드라이버 및 라이브러리 수동 설치

자동 드라이버 설치가 성공적으로 완료되지 않은 경우에만 수동으로 driver 설치를 시도해야 합니다.

데이터 이동 게이트웨이를 설치한 후 다음 RPM 파일을 다운로드합니다. /opt/qlik/gateway/movement/drivers/manifests/postgres.yamlbinary-artifacts에서 파일에 대한 직접 다운로드 링크를 찾을 수 있습니다. 다운로드가 완료되면 파일을 데이터 이동 게이트웨이 컴퓨터에 복사합니다.

Red Hat 9.x에 데이터 이동 게이트웨이가 설치된 경우:

  • postgresql<버전>-libs-<버전>PGDG.rhel9.x86_64.rpm
  • postgresql<버전>-<버전>PGDG.rhel9.x86_64.rpm
  • postgresql<버전>-odbc-<버전>PGDG.rhel9.x86_64.

Red Hat 8.x에 데이터 이동 게이트웨이가 설치된 경우:

  • postgresql<버전>-libs-<버전>PGDG.rhel8.x86_64.rpm
  • postgresql<버전>-<버전>PGDG.rhel8.x86_64.rpm
  • postgresql<버전>-odbc-<버전>PGDG.rhel8.x86_64.rpm

 

Data Movement gateway 서버에서 셸 프롬프트를 열고 다음을 수행합니다.

  1. Data Movement gateway 서비스 중지:

    sudo systemctl stop repagent

  2. 선택적으로 서비스가 중지되었는지 확인합니다.

    sudo systemctl status repagent

    상태는 다음과 같아야 합니다.

    Active: inactive (dead) since <timestamp> ago

  3. RPM 파일을 설치합니다.

  4. 작업 디렉터리를 <Data Movement gateway 설치 디렉터리>/bin으로 변경합니다.

  5. 다음과 같이 드라이버 위치를 site_arep_login.sh 파일에 복사합니다.

    echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/lib:/usr/lib64:/usr/pgsql-<version>/lib" >> site_arep_login.sh

    그러면 "LD_LIBRARY_PATH"에 드라이버가 추가되고 site_arep_login.sh 파일에서 드라이버 위치가 업데이트됩니다.

  6. 선택적으로 드라이버 위치가 복사되었는지 확인합니다.

    cat site_arep_login.sh
  7. 다음 예와 같이 /etc/odbcinst.ini 파일에 PostgreSQL에 대한 항목이 포함되어 있는지 확인합니다.

    [PostgreSQL]

    Description = PostgreSQL ODBC driver

    Driver = /usr/pgsql-13/lib/psqlodbc.so

    Setup = /usr/pgsql-13/lib/psqlodbcw.so

    UsageCount = 1

  8. Data Movement gateway 서비스 시작:

    sudo systemctl start repagent

  9. 선택적으로 서비스가 시작되었는지 확인합니다.

    sudo systemctl status repagent

    상태는 다음과 같아야 합니다.

    Active: active (running) since <timestamp> ago

제한 사항 및 고려 사항

PostgreSQL을 복제 대상으로 사용하는 경우 다음 제한 사항이 적용됩니다.

  • 중복 레코드가 포함된 기본 키/고유 인덱스가 없는 테이블에 대한 UPDATE 및 DELETE 작업은 지원되지 않습니다. 이러한 테이블을 변경하면 대상의 모든 레코드에 영향을 미칩니다.
  • 키에 LOB 열이 있는 테이블은 일괄 최적화 적용 모드에서 지원되지 않습니다. VARBINARY 열을 소스 테이블 키로 사용하면 대상에 BYTEA 열이 만들어집니다. 이로 인해 일괄 최적화 적용 모드에서 예측할 수 없는 동작이 발생합니다. 해결책으로 SQLite HEX 함수를 사용하여 VARBINARY를 VARCHAR로 변환하는 것이 좋습니다.

데이터 유형

기본 데이터 유형 정보는 보존되며 데이터 집합 보기의 기본 데이터 유형 열에 표시됩니다. 열이 표시되지 않으면 데이터 집합 보기의 열 선택기를 열고 기본 데이터 유형 열을 선택해야 합니다.

데이터 유형
Qlik Cloud 데이터 유형 PostgreSQL 데이터 유형

BOOL

BOOL

BYTES

BYTEA

DATE

DATE

TIME

TIME

DATETIME

배율 => 0이고 배율 =< 6인 경우:

TIMESTAMP

배율 => 7이고 배율 =< 12인 경우:

VARCHAR(37)

INT1

SMALLINT

INT2

SMALLINT

INT4

INTEGER

INT8

BIGINT

NUMERIC

DECIMAL(p,s)

REAL4

FLOAT4

REAL8

FLOAT8

STRING

길이가 1 ~ 21845인 경우:

VARCHAR(길이(바이트) = STRING 값에 3을 곱함)

길이가 21846 ~ 2147483647인 경우:

VARCHAR(65535)

UINT1

SMALLINT

UINT2

INTEGER

UINT4

BIGINT

UINT8

BIGINT

WSTRING

길이가 1 ~ 21845인 경우:

VARCHAR(길이(바이트) = WSTRING 값에 3을 곱함)

길이가 21846 ~ 2147483647인 경우:

VARCHAR(65535)

BLOB

BYTEA

NCLOB

TEXT

CLOB

TEXT

PostgreSQL 소스에서 복제할 때의 데이터 유형

PostgreSQL 소스에서 복제할 때 대상 테이블은 사용자 정의 또는 PostGIS 데이터 유형이 있는 열을 제외하고 모든 열에 대해 동일한 데이터 유형으로 만들어집니다. 이러한 경우 데이터 유형은 대상에서 "다양한 문자"로 만들어집니다.

이 페이지가 도움이 되었습니까?

이 페이지 또는 해당 콘텐츠에서 오타, 누락된 단계 또는 기술적 오류와 같은 문제를 발견하면 개선 방법을 알려 주십시오!