Genie Migrate로 SQL 스크립트와 ETL 파이프라인을 변환하기

Genie Migrate는 Genie Code를 사용해 T-SQL, Snowflake, Redshift, Oracle, BigQuery, Teradata 같은 SQL 방언의 기존 SQL을 Azure Databricks에서 실행되는 코드로 변환합니다. 또한 Informatica PowerCenter(베타)에서 추출, 변환, 로드(ETL) 작업을 Databricks 노트북으로 변환합니다. 마이그레이션 프로젝트에서 작업을 정리하고 출력할 대상 프레임워크를 선택합니다: Databricks SQL 쿼리 또는 DataFrame API를 사용하는 Databricks 노트북(베타). Genie Migrate는 각 소스 스크립트를 분석하고, 변환된 출력을 검증하며, 오류를 반복적으로 수정한 후 결과를 작업 공간 폴더에 기록합니다.

Genie Migrate는 기존 데이터 웨어하우스와 ETL 도구에서 Azure Databricks로 워크로드를 마이그레이션하는 Databricks 도구의 일부입니다. 마이그레이션 프로젝트에서 작업을 조직하고 추적하는 동안 SQL 스크립트와 ETL 파이프라인을 변환해 줍니다.

작동 방식

작업 영역에서 마이그레이션 프로젝트를 만들어 변환을 시작합니다. 이 프로젝트는 각 파일의 상태를 추적하고 마이그레이션을 관리할 수 있는 단일 위치를 제공합니다.

변환 워크플로우 도식: 소스 방언 파일이 Genie Migrate로 전달되어 각 파일을 변환하고, 구문과 의미론적 의도를 확인한 뒤 검사가 통과될 때까지 수정합니다. 커스텀 스킬이 입력되고, 변환된 파일은 마이그레이션 프로젝트로 넘어갑니다.

변환을 실행하면 Genie Code는 파일을 동시에 변환하는 하위 에이전트를 배치합니다. 각 서브에이전트는 소스 SQL 방언을 분석하고 프로젝트의 목표 프레임워크(Databricks SQL 또는 Databricks 노트북)에 해당하는 코드를 생성합니다. 그 후 변환된 코드를 확인합니다:

  • 구문: 변환된 코드가 Azure Databricks에서 오류 없이 실행되는지 확인합니다.
  • 의미적 의도: 변환된 코드가 동일한 조인과 WHERE 절 같은 소스 비즈니스 로직을 유지하는지 확인합니다.

검사가 실패하면 서브에이전트가 코드를 수정하고 다시 확인합니다. Genie Code는 파일을 변환할 때 사용자 지정 스킬도 적용합니다. ' 맞춤 스킬 만들기(선택 사항)'를 참조하세요. 변환된 파일은 프로젝트에 대해 지정한 작업 영역 폴더에 직접 기록됩니다.

Genie Code 대화에서 명령을 사용하여 /migrate 프로젝트 없이 단일 파일 또는 폴더를 변환할 수도 있습니다.

Requirements

  • 기존 SQL 또는 XML 파일은 작업 공간에서 접근할 수 있어야 하며, 작업 공간 파일로 업로드되어 있거나 편집기에서 열려 있어야 합니다.
  • 작업 영역은 Genie Code 요구 사항을 충족해야 합니다. 지니 코드를 참조하세요.
  • 베타 단계인 노트북 타겟 프레임워크, 프로젝트 분석 및 계보 또는 Informatica PowerCenter 변환을 사용하려면 작업 공간 관리자가 Previews 페이지에서 마이그레이션 프로젝트 실험 기능을 켜야 합니다. Azure Databricks 미리 보기 관리를 참조하세요.

지원되는 소스

변환기는 다음 SQL 언어 변형을 지원합니다:

  • T-SQL
  • 스노우플레이크 SQL
  • Redshift SQL
  • Oracle
  • BigQuery
  • Teradata

SQL 방언용 마이그레이션 프로젝트를 생성할 때는 다음 대상 프레임워크 중 하나를 선택하세요:

  • DBSQL: ANSI 호환 Databricks SQL 쿼리입니다.
  • 노트북 (베타): DataFrame API를 사용하는 Databricks 노트북으로, SQL에서 더 명확한 로직에는 spark.sql를 사용합니다.

Important

Informatica PowerCenter 소스 지원은 베타 단계입니다. 이를 사용하려면 작업 공간 관리자가 미리 보기 페이지에서 Migration Projects Experimental Features를 켜야 합니다. Azure Databricks 미리 보기 관리를 참조하세요.

변환기는 ETL 소스로서 Informatica PowerCenter도 지원합니다.

Informatica Intelligent 데이터 관리 Cloud(IDMC)와 Informatica Intelligent Cloud Services(IICS)는 지원되지 않습니다. Genie Migrate는 Informatica에서 내보내는 객체들(워크플로우나 매핑 등)를 Databricks 노트북으로 변환하므로, Informatica 프로젝트는 항상 노트북 타겟 프레임워크를 사용합니다.

Informatica 워크플로우를 변환 준비하려면 PowerCenter Repository Manager에서 PowerMart XML 형식으로 내보내세요. 워크플로우 수준에서 내보내고, 매핑, 세션, 맵플릿, 워크릿 등 의존 객체를 포함하세요. 내보내기에 자격 증명을 포함하지 마세요.

코드를 변환하세요

다음 단계들은 마이그레이션 프로젝트에서 SQL 스크립트와 ETL 파이프라인을 변환하는 방법을 설명합니다.

1단계: 원본 파일 업로드

.xml를 사용해 기존 SQL 파일()이나 ETL 내보내기(.sql)를 업로드하거나, Databricks CLI를 사용해 스크립트 디렉터리를 대량 업로드하세요.

2단계: 마이그레이션 프로젝트 만들기

작업 영역에서 마이그레이션 프로젝트를 만듭니다.

  1. 새 아이콘 > 마이그레이션 프로젝트를 클릭합니다.
  2. 프로젝트의 이름을 입력합니다.
  3. 드롭다운 선택기를 사용하여 원본 방언 및 대상 프레임워크를 선택합니다. Target 프레임워크의 경우, Databricks SQL 쿼리를 생성하려면 DBSQL, Databricks 노트북을 생성하려면 Notebooks (Beta)를 선택하세요. Informatica를 소스 방언으로 선택하면 대상 프레임워크가 Notebooks(으)로 설정됩니다.
  4. 대상 폴더의 파일 경로를 입력 합니다. 찾아보기를 클릭하여 사용 가능한 작업 영역 폴더 목록에서 대상을 선택합니다.
  5. 만들기를 클릭합니다.

프로젝트 이름, 원본 언어, 대상 프레임워크 및 대상 폴더 필드를 보여 주는 새 마이그레이션 프로젝트 대화 상자입니다.

3단계: 프로젝트에 파일 추가

새 프로젝트에서 다음을 수행합니다.

  1. 파일 추가> 추가를 클릭합니다.
  2. 작업 영역에서 원본 폴더 또는 파일을 선택합니다.

Informatica 프로젝트에서는 .xml 파일만 추가됩니다. 다른 유형의 파일은 건너뜁니다.

파일 탭에는 각 파일의 형식, 줄 수, 변환 상태가 나열되어 있습니다. Informatica 프로젝트는 Inventory 탭에서 열리며, 각 내보내기와 그 안에 포함된 객체가 나열됩니다.

파일 형식, 줄 수 및 변환 상태를 사용하여 추가된 원본 파일을 보여 주는 마이그레이션 프로젝트 캔버스입니다.

4단계: 코드 복잡도와 계보 검토 (베타)

Important

이 기능은 베타 버전으로 제공됩니다. 이를 사용하려면 작업 공간 관리자가 미리 보기 페이지에서 Migration Projects Experimental Features를 켜야 합니다. Azure Databricks 미리 보기 관리를 참조하세요.

변환 전에 코드 복잡도와 파일 간 의존성을 검토하기 위해 프로젝트를 분석하세요. SQL 프로젝트에서는 분석이 선택 사항이며, Informatica 프로젝트에서는 필수입니다.

SQL 프로젝트를 분석하려면:

  1. 프로젝트에서 '모두 분석'을 클릭하세요. 프로젝트에 계보가 없다면, Analyze all 이 기본 동작입니다. 그렇지 않으면 버튼의 드롭다운 메뉴에서 ' 모두 분석 '을 선택하세요. 분석은 파일을 선택한 경우에도 프로젝트의 모든 파일을 포함합니다.
  2. 분석이 끝날 때까지 기다려. 실행 중인 분석을 취소하려면 '중지'를 클릭하세요. 분석이 끝나면 버튼이 모두 변환으로 바뀝니다.
  3. 소스 파일을 클릭하면 복잡도 평가가 열리고, Lineage를 클릭하면 함께 마이그레이션해야 하는 상호 의존적인 파일과 테이블을 보여 주는 의존성 그래프가 열립니다.

Informatica 프로젝트를 분석하려면 Analyze all을 Inventory 탭에서 클릭하세요. Analysis는 각 내보내기를 워크플로우, 워크렛, 매핑, 그리고 마플릿으로 나눕니다. 변환하기 전에 내보내기를 분석해야 합니다.

5단계: 변환 실행

Informatica 프로젝트에서는 분석이 생성하는 워크플로우, 매핑, 기타 객체를 선택하고 변환하며, 업로드된 .xml 내보내기가 아니라.

특정 파일을 변환하려면 해당 파일을 선택한 후 선택 항목 변환을 클릭하세요. 프로젝트 내 모든 파일을 변환하려면 선택을 해제하고 모두 변환을 클릭하세요. Genie Code는 대화를 열고, 마이그레이션 기술을 호출하고, 파일을 동시에 변환하는 스바겐트를 배포합니다. 변환된 각 파일은 프로젝트에 연결된 파일로 표시됩니다. 각 파일은 다음 상태 중 하나를 보여줍니다:

  • 그레이: 파일이 아직 변환되지 않았습니다(시작 안 됨, 대기열 또는 중지). 파일이 변환되는 동안 스피너가 표시됩니다.
  • 채워지지 않은 녹색: 파일이 문제없이 변환됨(변환됨).
  • 초록색 표시: 변환된 파일을 검토하고 승인하셨습니다(검토됨).
  • 노란색: 파일이 변환되었지만, 검토해야 할 액션 항목이 있습니다.
  • Red: 변환 실패 (오류).

각 실행 시 최대 500개의 파일을 변환합니다. 500개 이상의 파일을 큐에 넣으면 처음 500개의 변환되지 않은 파일이 현재 배치에서 처리됩니다. 배치가 끝나면 다음 500개를 변환하기 위해 다시 변환을 시작하세요.

6단계: 변환 결과 검토

Databricks SQL 프로젝트의 경우, 변환된 파일을 클릭하면 SQL 편집기에서 인라인 diff가 열리고, 각 소스 코드 섹션이 이를 대체할 Databricks SQL 제안 위에 표시됩니다. 제안된 모든 변경 내용을 적용하거나 개별 편집 내용을 검토하고 수락합니다. 노트북 프로젝트의 경우, 변환된 파일을 클릭하여 생성된 Databricks 노트북을 여세요. 변환에 실패한 스크립트의 경우 편집기에서 코드를 편집하거나 Genie Code에 특정 섹션의 유효성을 다시 검사하거나 다시 시도하도록 요청합니다. 만족하면 변환된 SQL이나 노트북을 실행해 Azure Databricks에서 실행되는지 확인하세요. 같은 오류가 여러 파일에서 발생하면 수정 사항을 사용자 지정 기술에 기록하고 해당 파일들을 다시 실행하세요. ' 맞춤 스킬 만들기(선택 사항)'를 참조하세요.

Informatica 프로젝트의 경우, 생성된 노트북과 해당 PowerCenter 매핑을 비교하세요. 소스 및 대상 테이블, 조인, 필터, 라우터 그룹, Lookup, Update Strategy 로직 및 매개변수를 확인하세요. 변환된 파이프라인을 프로덕션에서 사용하기 전에 비프로덕션 데이터에서 실행하고, 행 수나 키 집계 결과 같은 결과를 PowerCenter 워크플로우의 출력과 비교하세요.

사용자 지정 기술 만들기(선택 사항)

사용자 지정 기술을 사용하면 Genie Code가 변환할 때마다 자동으로 적용되는 비즈니스 규칙을 인코딩할 수 있습니다. 이를 사용하여 독점 데이터 형식을 처리하거나, 기본 설정 대상 패턴을 적용하거나, 반복적으로 수정한 사항을 캡처할 수 있습니다. 마이그레이션 기술은 Genie Code 기술이므로 다른 기술과 동일한 방식으로 만들고 관리할 수 있습니다. 자세한 내용은 에이전트 기술을 사용하여 Genie Code 확장을 참조하세요.

첫 컨버전 전에 모든 기술을 정의할 필요는 없습니다. 스킬이 캡처해야 할 대부분의 규칙은 첫 결과를 검토한 후에야 명확해집니다. 일반적인 작업 흐름은 다음과 같습니다:

  1. 대표적인 파일 세트를 변환하세요.
  2. 실행 항목이나 오류가 있는 파일을 검토하고, 동일한 지원되지 않는 데이터 타입, 함수, 이름 패턴 등 반복되는 오류가 있는지 찾아보세요.
  3. 반복되는 오류마다 수정 방법을 캡처하는 스킬을 만드세요.
  4. 영향을 받은 파일만 선택하고 선택 항목 변환을 클릭하세요. 지니 코드는 그 파일들에 새로운 스킬을 적용합니다.

이 과정을 반복하면서 코드를 더 많이 변환하세요. Genie Code는 각 스킬을 작업 공간 내 이후 변환에 적용하므로, 한 가지 수정이 동일한 패턴의 다른 파일들을 커버합니다.

Genie Code 설정 또는 지니 코드 대화에서 기술을 만들 수 있습니다. 자세한 지침, 예제 또는 지원 파일을 포함하는 복잡한 기술에 대한 설정 경로를 사용합니다. 빠른 단일 규칙 기술을 위해 채팅 경로를 사용합니다.

지니 코드 설정

자세한 지침을 작성하고 Git 폴더에서 버전을 지정할 수 있도록 기술 파일을 만듭니다.

  1. 지니 코드 패널에서 기어 아이콘을 클릭합니다.설정을 클릭한 다음 아이콘에서 화살표를 클릭합니다.기술 폴더를 엽니다.

  2. 작업 영역 기술 경로 Workspace/.assistant/skills/에서 기술에 대한 폴더를 만듭니다. Workspace/.assistant/skills/sql-migration/을 예로 들 수 있습니다.

  3. 기술 폴더에서 필요한 프런트매터 및 변환 규칙을 사용하여 SKILL.md 파일을 만듭니다. 다음은 그 예입니다.

    ---
    name: sql-migration
    description: Conversion rules to apply when migrating legacy SQL to ANSI SQL.
    ---
    
    Always convert the custom type MYDATE to TIMESTAMP_NTZ.
    

Genie Code는 다음에 변환을 실행하면 해당 스킬을 인식합니다.

지니 코드 채팅

인코딩하려는 변환 규칙을 설명한 다음, Genie Code에 저장하도록 요청합니다.

Tip

Always convert our custom type MYDATE to TIMESTAMP_NTZ. Save this as a custom migration skill.

Genie Code는 기술을 만들고 등록하며 작업 영역의 향후 변환에 적용합니다.

활성 스킬을 보려면:

Tip

Show me my migration skills

기술을 제거하려면 다음을 수행합니다.

Tip

Delete the migration skill for [description]

작업 영역 기술은 작업 영역 수준에서 저장되고 작업 영역의 모든 사용자 간에 공유됩니다.

테스트 팁

에이전트 루프의 일부로 변환기는 각 원본 스크립트를 분석하고, 변환된 출력이 구문적으로 유효하고 의미상 원본과 동일한지 확인하고, 결과를 작성하기 전에 실패한 섹션을 반복적으로 수정합니다. 다음 팁은 출력을 검토하고 신뢰도를 얻는 데 도움이 됩니다.

  • 일괄 처리 변환: 한 세션에서 2~5개 파일의 작은 배치를 변환하여 다중 파일 변환이 종단 간 작동하는지 확인합니다.
  • 구문 유효성 검사: 변환 후 Databricks SQL 편집기 또는 Notebook에서 출력을 실행하여 오류 없이 실행되는지 확인합니다.
  • 에지 사례: T-SQL 창 함수, Snowflake QUALIFY또는 Redshift LISTAGG와 같은 언어별 구문이 있는 스크립트를 포함하여 변환기가 사소한 패턴을 처리하는 방법을 확인합니다.
  • 의미 체계 정확성: 동일한 테스트 데이터에 대해 원래 및 변환된 쿼리를 실행하고 결과를 비교합니다. 구문상 유효할 뿐만 아니라 출력이 의미상 올바른지 확인합니다.

추가 리소스