Openflow Connector for Oracle 설치 및 구성¶
참고
이 커넥터에는 `Snowflake Connector 약관<https://www.snowflake.com/legal/snowflake-connector-terms/>`_이 적용됩니다.
참고
Openflow Connector for Oracle 에는 표준 커넥터 서비스 약관 외에 추가 서비스 약관도 적용됩니다. 자세한 내용은 `Oracle용 Openflow Connector 부록 <https://www.snowflake.com/en/legal/optional-offerings/offering-specific-terms/openflow-oracle-terms/>`_을 참조하세요.
이 항목에서는 Openflow Connector for Oracle 을 설치하고 구성하는 단계에 대해 설명합니다.
데이터 엔지니어는 다음 작업을 수행하여 커넥터를 설치하고 구성합니다.
커넥터 설치하기¶
커넥터를 설치하려면 데이터 엔지니어로서 다음을 수행합니다.
Openflow 개요 페이지로 이동합니다. Featured connectors 섹션에서 View more connectors 을 선택합니다.
Openflow Connector 페이지에서 커넥터를 찾아 Add to runtime 을 선택합니다.
Select runtime 대화 상자의 Available runtimes 드롭다운 목록에서 런타임을 선택하고 :ui:`Add`를 클릭합니다.
참고
커넥터를 설치하기 전에 커넥터가 수집한 데이터를 저장할 수 있도록 Snowflake에서 데이터베이스와 스키마를 생성했는지 확인하십시오.
Snowflake 계정 자격 증명으로 배포를 인증하고 런타임 애플리케이션이 Snowflake 계정에 액세스할 수 있도록 허용할지 묻는 메시지가 표시되면 Allow 를 선택합니다. 커넥터 설치 프로세스를 완료하는 데 몇 분 정도 걸립니다.
Snowflake 계정 자격 증명으로 런타임에 인증합니다.
커넥터 프로세스 그룹이 추가된 Openflow 캔버스가 표시됩니다.
커넥터 구성¶
커넥터를 구성하려면 데이터 엔지니어로서 다음을 수행합니다.
추가된 런타임을 마우스 오른쪽 버튼으로 클릭하고 :ui:`Parameters`를 선택합니다.
필수 매개 변수 값을 채웁니다.
필수 매개 변수 값에 대한 자세한 내용은 다음 섹션을 참조하세요.
Snowflake 대상 매개 변수: Snowflake와의 연결을 설정하는 데 사용됩니다.
Oracle 수집 매개 변수: 복제할 테이블을 지정하는 데 사용됩니다.
Oracle 소스 매개 변수: Oracle에서 다운로드한 데이터의 구성을 정의하는 데 사용됩니다.
Snowflake 대상 매개 변수¶
매개 변수 |
설명 |
필수 |
|---|---|---|
대상 데이터베이스 |
데이터가 유지될 데이터베이스입니다. Snowflake에 이미 존재해야 합니다. 이름은 대소문자를 구분합니다. 따옴표로 묶지 않은 식별자의 경우 이름을 대문자로 입력합니다. |
예 |
Snowflake Authentication Strategy |
사용하는 경우:
|
예 |
Snowflake 계정 식별자 |
사용하는 경우:
|
예 |
Snowflake 연결 전략 |
KEY_PAIR를 사용하는 경우 Snowflake에 연결하기 위한 전략을 지정합니다.
|
KEY_PAIR가 있는 BYOC에만 필요하며, 그렇지 않은 경우는 무시됩니다. |
Snowflake 개인 키 |
사용하는 경우:
|
아니요 |
Snowflake 개인 키 파일 |
사용하는 경우:
|
아니요 |
Snowflake 개인 키 비밀번호 |
사용하는 경우
|
아니요 |
Snowflake 역할 |
사용하는 경우
|
예 |
Snowflake 사용자 이름 |
사용하는 경우
|
예 |
너무 큰 값 초과 시 전략 |
복제 중에 커넥터가 내부 크기 제한(16MB)을 초과하는 값을 처리하는 방식을 결정합니다. 가능한 값은 다음과 같습니다. |
아니요 |
Snowflake 웨어하우스 |
쿼리 실행에 사용되는 Snowflake 웨어하우스입니다. |
예 |
Oracle 수집 매개 변수¶
매개 변수 |
설명 |
|---|---|
포함된 테이블 이름 |
정규화된 테이블 경로의 쉼표로 구분된 목록입니다. 테이블은 정규화된 데이터베이스, 스키마 및 테이블 이름 형식 DATABASE_NAME.SCHEMA_NAME.TABLE_NAME을 사용하여 지정해야 합니다. 예: |
포함된 테이블 Regex |
기존 테이블과 새 테이블을 자동으로 포함하기 위해 테이블 경로를 일치시키는 정규식입니다. 정규식 패턴은 DATABASE_NAME.SCHEMA_NAME.TABLE_NAME의 세 부분으로 구성된 명명 규칙과 일치해야 합니다. 예를 들어, :code:`MYPDB\.SALES\..*`는 MYPDB 데이터베이스 내 SALES 스키마의 모든 테이블과 일치합니다. |
필터 JSON |
주어진 테이블에 대한 정규식 패턴을 기반으로 특정 열을 포함하는 JSON 배열입니다. |
작업 일정 CRON 병합하기 |
저널에서 대상 테이블로의 병합 작업이 트리거되는 시점을 정의하는 CRON 식입니다. 예를 들어, 연속 병합의 경우 * * * * * ?입니다. |
오브젝트 식별자 확인 |
Snowflake에서 스키마, 테이블, 열 이름과 같은 소스 오브젝트 식별자를 저장하고 쿼리하는 방법을 지정합니다. 이 설정은 SQL 쿼리에 큰따옴표를 사용해야 하는지 여부를 결정합니다. 옵션 1: 기본값으로, 대/소문자를 구분하지 않습니다(권장).
참고 데이터베이스 오브젝트 이름의 대문자와 소문자가 혼합되지 않을 것으로 예상되는 경우 이 옵션을 사용하는 것이 좋습니다. 옵션 2: 대/소문자를 구분합니다.
중요 커넥터 수집이 시작된 후에는 이 설정을 변경하지 마세요. 수집이 시작된 후 이 설정을 변경하면 기존 수집이 중단됩니다. 이 설정을 변경해야 하는 경우 새 커넥터 인스턴스를 만드세요. |
스냅샷 가져오기 전략 |
스냅샷 로드 가져오기 전략을 결정합니다.
|
Oracle 소스 매개 변수¶
매개 변수 |
설명 |
필수 |
|---|---|---|
Oracle 연결 URL |
DB에 대한 데이터베이스 연결의 JDBC URL입니다. URL은 복제할 데이터가 포함된 대상 컨테이너(PDB 또는 CDB)를 지정해야 합니다. 예를 들어, :code:`jdbc:oracle:thin@<host>:<port>/YOUR_DB_NAME`입니다. 여기서YOUR_DB_NAME은 PDB 또는 CDB의 이름입니다. 참고 커넥터는 단일 데이터베이스/컨테이너 내에서 작동합니다. JDBC URL이 복제할 테이블을 보유하는 컨테이너를 직접 가리키는지 확인합니다. |
예 |
Oracle 사용자 이름 |
XStream 서버에 액세스할 수 있는 연결 사용자의 사용자 이름입니다. |
예 |
Oracle 비밀번호 |
XStream 서버에 액세스할 수 있는 연결 사용자의 비밀번호입니다. |
예 |
Oracle 데이터베이스 프로세서 승수 |
`Oracle 프로세서 코어 요소 테이블 <https://www.oracle.com/contracts/docs/processor-core-factor-table-070634.pdf>`_에 설명된 프로세서 코어 라이선스 요소입니다. |
임베디드 라이선스에만 필요 |
Oracle 데이터베이스 프로세서 코어 |
Oracle 데이터베이스의 프로세서 코어 수입니다. |
임베디드 라이선스에만 필요 |
XStream 청구 확인 |
라이선스 계약 확인 |
임베디드 라이선스에만 필요 |
XStream 출력 서버 이름 |
Oracle에 이미 존재해야 하는 XStream 서버의 이름입니다. |
예 |
XStream 출력 서버 URL |
XStream에 대한 데이터베이스 연결의 JDBC URL은 OCI 드라이버를 사용해야 합니다. 예를 들어, :code:`jdbc:oracle:oci:@<host>:<port>/SID`입니다. |
예 |
테이블 복제 다시 시작¶
예를 들어 기본 키가 누락되거나 지원되지 않는 스키마 변경으로 인한 FAILED 상태의 테이블은 자동으로 다시 시작되지 않습니다. 테이블에 FAILED 상태가 입력되거나 처음부터 복제를 다시 시작해야 하는 경우, 다음 절차에 따라 테이블을 제거하고 복제에 다시 추가합니다.
참고
기본 키 누락과 같이 소스 테이블의 문제로 인해 실패가 발생한 경우 소스 데이터베이스에서 해당 문제를 해결한 후 계속 진행합니다.
흐름 매개 변수에서 테이블 제거: 수집 매개 변수 컨텍스트의 :ui:`Included Table Names`에서 테이블을 제거하거나 테이블이 더 이상 일치하지 않도록 :ui:`Included Table Regex`를 수정합니다.
테이블이 제거되었는지 확인:
Openflow 런타임 캔버스에서 프로세서 그룹을 마우스 오른쪽 버튼으로 클릭하고 :ui:`Controller Services`를 선택합니다.
컨트롤러 서비스를 나열하는 테이블에서 Table State Store 행을 찾아 행의 오른쪽에 있는 세로 점 3개를 클릭한 다음 :ui:`View State`를 선택합니다.
중요
계속하기 전에 이 목록에서 테이블의 상태가 완전히 제거될 때까지 기다려야 합니다. 이 구성 변경이 완료될 때까지 계속 진행하지 마세요.
대상 정리: 테이블의 상태가 완전히 제거된 것으로 표시되면 Snowflake에서 대상 테이블을 수동으로 :doc:`DROP </sql-reference/sql/drop-table>`합니다. 커넥터는 스냅샷 단계 중에 기존 대상 테이블을 덮어쓰지 않습니다. 테이블이 여전히 존재하면 복제가 다시 실패합니다. 선택적으로, 저널 테이블과 스트림이 더 이상 필요하지 않은 경우 제거할 수도 있습니다.
테이블을 다시 추가합니다. Included Table Names 또는 Included Table Regex 매개 변수를 업데이트하여 테이블을 다시 포함합니다.
다시 시작 확인: 이전에 제공된 지침을 참조하여 :ui:`Table State Store`를 확인합니다. 테이블의 상태는 NEW 상태로 표시된 후 SNAPSHOT_REPLICATION으로 전환되고 마지막으로 INCREMENTAL_REPLICATION으로 표시되어야 합니다.
플로우 실행¶
평면을 마우스 오른쪽 버튼으로 클릭하고 Enable all Controller Services 를 선택합니다.
가져온 프로세스 그룹을 마우스 오른쪽 버튼으로 클릭하고 Start 를 선택합니다. 커넥터가 데이터 수집을 시작합니다.