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 을 설치하고 구성하는 단계에 대해 설명합니다.

데이터 엔지니어는 다음 작업을 수행하여 커넥터를 설치하고 구성합니다.

커넥터 설치하기

커넥터를 설치하려면 데이터 엔지니어로서 다음을 수행합니다.

  1. Openflow 개요 페이지로 이동합니다. Featured connectors 섹션에서 View more connectors 을 선택합니다.

  2. Openflow Connector 페이지에서 커넥터를 찾아 Add to runtime 을 선택합니다.

  3. Select runtime 대화 상자의 Available runtimes 드롭다운 목록에서 런타임을 선택하고 :ui:`Add`를 클릭합니다.

    참고

    커넥터를 설치하기 전에 커넥터가 수집한 데이터를 저장할 수 있도록 Snowflake에서 데이터베이스와 스키마를 생성했는지 확인하십시오.

  4. Snowflake 계정 자격 증명으로 배포를 인증하고 런타임 애플리케이션이 Snowflake 계정에 액세스할 수 있도록 허용할지 묻는 메시지가 표시되면 Allow 를 선택합니다. 커넥터 설치 프로세스를 완료하는 데 몇 분 정도 걸립니다.

  5. Snowflake 계정 자격 증명으로 런타임에 인증합니다.

커넥터 프로세스 그룹이 추가된 Openflow 캔버스가 표시됩니다.

커넥터 구성

커넥터를 구성하려면 데이터 엔지니어로서 다음을 수행합니다.

  1. 추가된 런타임을 마우스 오른쪽 버튼으로 클릭하고 :ui:`Parameters`를 선택합니다.

  2. 필수 매개 변수 값을 채웁니다.

    필수 매개 변수 값에 대한 자세한 내용은 다음 섹션을 참조하세요.

Snowflake 대상 매개 변수

매개 변수

설명

필수

대상 데이터베이스

데이터가 유지될 데이터베이스입니다. Snowflake에 이미 존재해야 합니다. 이름은 대소문자를 구분합니다. 따옴표로 묶지 않은 식별자의 경우 이름을 대문자로 입력합니다.

Snowflake Authentication Strategy

사용하는 경우:

  • Snowflake Openflow Deployment 또는 BYOC: SNOWFLAKE_MANAGED_TOKEN 을 사용합니다. 이 토큰은 Snowflake에서 자동으로 관리됩니다. BYOC 배포에서 SNOWFLAKE_MANAGED_TOKEN을 사용하도록 :ref:`런타임 역할 <label-deployment_byoc_setup_runtime_role>`을 미리 구성했어야 합니다.

  • BYOC: 또는 BYOC에서 KEY_PAIR를 인증 전략의 값으로 사용할 수 있습니다.

Snowflake 계정 식별자

사용하는 경우:

  • Session Token Authentication Strategy: 비워 두어야 합니다.

  • KEY_PAIR: 데이터가 유지될 [organization-name]-[account-name] 형식의 Snowflake 계정 이름입니다.

Snowflake 연결 전략

KEY_PAIR를 사용하는 경우 Snowflake에 연결하기 위한 전략을 지정합니다.

  • **STANDARD**(기본값): 표준 공개 라우팅을 사용하여 Snowflake 서비스에 연결합니다.

  • PRIVATE_CONNECTIVITY: AWS PrivateLink와 같은 지원 클라우드 플랫폼과 연결된 개인 주소를 사용하여 연결합니다.

KEY_PAIR가 있는 BYOC에만 필요하며, 그렇지 않은 경우는 무시됩니다.

Snowflake 개인 키

사용하는 경우:

  • Session Token Authentication Strategy: 비워 두어야 합니다.

  • KEY_PAIR: 인증에서 사용되는 RSA 개인 키여야 합니다.

    RSA 키는 PKCS8 표준에 따라 형식이 지정되어야 하며 표준 PEM 머리글 및 바닥글이 있어야 합니다. Snowflake 개인 키 파일 또는 Snowflake 개인 키를 정의해야 합니다.

아니요

Snowflake 개인 키 파일

사용하는 경우:

  • Session token authentication strategy: 개인 키 파일은 비워 두어야 합니다.

  • KEY_PAIR: PKCS8 표준에 따라 형식이 지정되고 표준 PEM 머리글과 바닥글을 포함하며 Snowflake 인증에 사용되는 RSA 개인 키를 포함하는 파일을 업로드합니다. 머리글 라인은 ``—–BEGIN PRIVATE``으로 시작합니다. 개인 키 파일을 업로드하려면 Reference asset 확인란을 선택합니다.

아니요

Snowflake 개인 키 비밀번호

사용하는 경우

  • Session Token Authentication Strategy: 비워 두어야 합니다.

  • KEY_PAIR: Snowflake 개인 키 파일과 연결된 비밀번호를 입력합니다.

아니요

Snowflake 역할

사용하는 경우

  • Session Token Authentication Strategy: 런타임에 할당된 Snowflake 역할 또는 이 Snowflake 역할에 부여된 하위 역할을 사용합니다. 런타임에 대한 More Options [⋮] 버튼을 확장하고 :ui:`Set Snowflake role`을 선택하여Openflow UI에서 런타임 Snowflake 역할을 찾을 수 있습니다.

  • KEY_PAIR Authentication Strategy: 서비스 사용자에 대해 구성된 유효한 역할을 사용합니다.

Snowflake 사용자 이름

사용하는 경우

  • Session Token Authentication Strategy: 비워 두어야 합니다.

  • KEY_PAIR: Snowflake 인스턴스에 연결하는 데 사용되는 사용자 이름을 입력합니다.

너무 큰 값 초과 시 전략

복제 중에 커넥터가 내부 크기 제한(16MB)을 초과하는 값을 처리하는 방식을 결정합니다. 가능한 값은 다음과 같습니다.

  • **Fail Table**(기본값): 테이블은 영구적으로 실패한 것으로 표시되고 해당 테이블에 대한 복제가 중지됩니다.

  • Set Null: 대상 테이블에서 값이 ``NULL``로 대체됩니다. 너무 큰 값을 초과하는 테이블의 데이터 손실이 허용되는 경우 이 옵션을 사용하면 테이블 오류를 방지할 수 있습니다.

아니요

Snowflake 웨어하우스

쿼리 실행에 사용되는 Snowflake 웨어하우스입니다.

Oracle 수집 매개 변수

매개 변수

설명

포함된 테이블 이름

정규화된 테이블 경로의 쉼표로 구분된 목록입니다. 테이블은 정규화된 데이터베이스, 스키마 및 테이블 이름 형식 DATABASE_NAME.SCHEMA_NAME.TABLE_NAME을 사용하여 지정해야 합니다.

예: MYPDB.SALES.CUSTOMERS, MYPDB.SALES.ORDERS

포함된 테이블 Regex

기존 테이블과 새 테이블을 자동으로 포함하기 위해 테이블 경로를 일치시키는 정규식입니다. 정규식 패턴은 DATABASE_NAME.SCHEMA_NAME.TABLE_NAME의 세 부분으로 구성된 명명 규칙과 일치해야 합니다.

예를 들어, :code:`MYPDB\.SALES\..*`는 MYPDB 데이터베이스 내 SALES 스키마의 모든 테이블과 일치합니다.

필터 JSON

주어진 테이블에 대한 정규식 패턴을 기반으로 특정 열을 포함하는 JSON 배열입니다.

작업 일정 CRON 병합하기

저널에서 대상 테이블로의 병합 작업이 트리거되는 시점을 정의하는 CRON 식입니다. 예를 들어, 연속 병합의 경우 * * * * * ?입니다.

오브젝트 식별자 확인

Snowflake에서 스키마, 테이블, 열 이름과 같은 소스 오브젝트 식별자를 저장하고 쿼리하는 방법을 지정합니다. 이 설정은 SQL 쿼리에 큰따옴표를 사용해야 하는지 여부를 결정합니다.

옵션 1: 기본값으로, 대/소문자를 구분하지 않습니다(권장).

  • 변환: 모든 식별자는 대문자로 변환됩니다. 예를 들어, ``My_Table``은 ``MY_TABLE``이 됩니다.

  • 쿼리: SQL 쿼리는 대문자와 소문자를 구분하지 않으며 SQL 큰따옴표가 필요합니다.

    예를 들어 ``SELECT * FROM my_table;``은 ``SELECT * FROM MY_TABLE;``과 동일한 결과를 반환합니다.

참고

데이터베이스 오브젝트 이름의 대문자와 소문자가 혼합되지 않을 것으로 예상되는 경우 이 옵션을 사용하는 것이 좋습니다.

옵션 2: 대/소문자를 구분합니다.

  • 변환: 대문자와 소문자가 유지됩니다. 예를 들어, ``My_Table``은 ``My_Table``로 유지됩니다.

  • 쿼리: SQL 쿼리는 데이터베이스 오브젝트의 대문자 및 소문자와 정확히 일치하도록 큰따옴표를 사용해야 합니다. 예: SELECT * FROM "My_Table";.

중요

커넥터 수집이 시작된 후에는 이 설정을 변경하지 마세요. 수집이 시작된 후 이 설정을 변경하면 기존 수집이 중단됩니다. 이 설정을 변경해야 하는 경우 새 커넥터 인스턴스를 만드세요.

스냅샷 가져오기 전략

스냅샷 로드 가져오기 전략을 결정합니다.

  • **SEQUENTIAL_BY_PRIMARY_KEY**(기본값): 기본 키별로 순차적으로 검색된 고정 크기 배치를 사용합니다.

  • CONCURRENT_BY_ROWID: 테이블을 물리적 행 ID 범위로 묶인 청크로 분할하고 각 청크를 병렬로 검색합니다.

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 상태가 입력되거나 처음부터 복제를 다시 시작해야 하는 경우, 다음 절차에 따라 테이블을 제거하고 복제에 다시 추가합니다.

참고

기본 키 누락과 같이 소스 테이블의 문제로 인해 실패가 발생한 경우 소스 데이터베이스에서 해당 문제를 해결한 후 계속 진행합니다.

  1. 흐름 매개 변수에서 테이블 제거: 수집 매개 변수 컨텍스트의 :ui:`Included Table Names`에서 테이블을 제거하거나 테이블이 더 이상 일치하지 않도록 :ui:`Included Table Regex`를 수정합니다.

  2. 테이블이 제거되었는지 확인:

    1. Openflow 런타임 캔버스에서 프로세서 그룹을 마우스 오른쪽 버튼으로 클릭하고 :ui:`Controller Services`를 선택합니다.

    2. 컨트롤러 서비스를 나열하는 테이블에서 Table State Store 행을 찾아 행의 오른쪽에 있는 세로 점 3개를 클릭한 다음 :ui:`View State`를 선택합니다.

    중요

    계속하기 전에 이 목록에서 테이블의 상태가 완전히 제거될 때까지 기다려야 합니다. 이 구성 변경이 완료될 때까지 계속 진행하지 마세요.

  3. 대상 정리: 테이블의 상태가 완전히 제거된 것으로 표시되면 Snowflake에서 대상 테이블을 수동으로 :doc:`DROP </sql-reference/sql/drop-table>`합니다. 커넥터는 스냅샷 단계 중에 기존 대상 테이블을 덮어쓰지 않습니다. 테이블이 여전히 존재하면 복제가 다시 실패합니다. 선택적으로, 저널 테이블과 스트림이 더 이상 필요하지 않은 경우 제거할 수도 있습니다.

  4. 테이블을 다시 추가합니다. Included Table Names 또는 Included Table Regex 매개 변수를 업데이트하여 테이블을 다시 포함합니다.

  5. 다시 시작 확인: 이전에 제공된 지침을 참조하여 :ui:`Table State Store`를 확인합니다. 테이블의 상태는 NEW 상태로 표시된 후 SNAPSHOT_REPLICATION으로 전환되고 마지막으로 INCREMENTAL_REPLICATION으로 표시되어야 합니다.

플로우 실행

  1. 평면을 마우스 오른쪽 버튼으로 클릭하고 Enable all Controller Services 를 선택합니다.

  2. 가져온 프로세스 그룹을 마우스 오른쪽 버튼으로 클릭하고 Start 를 선택합니다. 커넥터가 데이터 수집을 시작합니다.

다음 단계

  • (선택 사항) :doc:`스냅샷 없이 증분 복제를 설정 <incremental-replication>`합니다.

  • :doc:`흐름을 모니터링 </user-guide/data-integration/openflow/monitor>`합니다.