Snowpark Migration Accelerator: 문제 코드 분류¶
Snowpark Migration Accelerator(SMA)는 코드베이스를 분석하고 문제 코드를 생성합니다. 이러한 코드는 자세한 정보를 제공하지만 크게 세 가지 범주로 나뉩니다.
구문 분석 오류¶
구문 분석 오류는 SMA 에서 소스 코드의 섹션을 이해하거나 처리할 수 없을 때 발생합니다. SMA 에서 인식하지 못하거나 유효하지 않은 것으로 간주되는 코드가 발견될 때 발생합니다. 이러한 오류는 일반적으로 두 가지 원인 중 하나에서 비롯됩니다.
SMA 도구 자체 내의 문제
소스 코드의 문제
이러한 유형의 오류는 여러 가지 이유로 발생할 수 있습니다.
잘못된 소스 코드: 코드는 소스 플랫폼에서 실행 가능해야 합니다. 소스 플랫폼에서 독립적으로 실행할 수 없는 코드 스니펫이나 부분 코드를 제공하는 경우 SMA 가 이를 구문 분석할 수 없습니다.
순환 종속성: 대규모 코드베이스를 분석할 때 SMA 코드 요소 간에 순환 참조가 발생할 수 있습니다. 이로 인해 도구가 이러한 상호 의존적인 참조 중 일부를 건너뛰거나 구문 분석에 실패할 수 있습니다.
새로운 코드 패턴: SMA 는 정기적으로 업데이트되지만 소스 플랫폼도 지속적으로 발전합니다. 새로 도입된 코드 패턴이 아직 도구에서 지원되지 않는 경우가 있을 수 있습니다.
인코딩 문제: 소스 코드에 일관되지 않은 인코딩이나 파일의 시작 또는 끝에 예기치 않은 문자가 포함되어 있는 경우, 소스 플랫폼에서 코드가 성공적으로 실행되더라도 SMA 에서 구문 분석 오류가 발생할 수 있습니다.
구문 분석 오류가 발생하면 특정 오류 코드로 식별할 수 있습니다. 이러한 코드의 의미와 구문 분석 오류와의 관계를 이해하려면 설명서의 소스별 문제 코드 섹션을 참조하십시오.
변환 오류¶
SMA 가 코드를 성공적으로 식별했지만 변환할 수 없는 경우 변환 오류가 발생합니다. 구문 분석 오류와 달리 변환 오류는 소스 코드에 문제가 있음을 나타내지 않습니다. 대신 변환 기능을 벗어난 코드 세그먼트를 식별하여 SMA 가 의도한 대로 작동하고 있음을 보여줍니다.
코드를 변환할 수 없는 몇 가지 일반적인 이유가 있습니다. 다음과 같은 오브젝트가 이에 해당합니다.
소스 코드의 요소는 Snowflake에서 구현할 수 없습니다. 현재 이 소스 코드 요소에 대해 Snowflake에서 사용할 수 있는 동등한 기능은 없습니다.
요소의 특정 사용법은 Snowflake에서 지원되지 않습니다. Snowflake가 소스 플랫폼의 특정 요소를 지원할 수 있지만 소스 코드에서 사용되는 방식이 Snowflake의 구현과 호환되지 않습니다.
필수 매개 변수는 지원되지 않습니다. SMA 는 단순히 요소를 식별하고 분류하는 데 그치지 않고 각 요소가 어떻게 사용되는지 분석하여 소스 코드의 상세한 함수 모델을 생성합니다. 때때로 소스 코드의 필수 함수 매개 변수가 Snowflake에서 해당 함수를 지원하지 않는 경우가 있습니다.
특정 함수 조합은 호환되지 않습니다. SMA 의 함수 모델은 함수가 함께 작동하는 방식을 분석합니다. 개별 함수가 Snowflake에서 지원되더라도 함께 사용하지 못할 수도 있습니다. 이러한 경우 SMA 에 변환 오류로 플래그가 표시됩니다.
대부분의 오류 메시지에는 변환 문제를 해결하는 데 도움이 되는 구체적인 권장 사항이나 다음 단계가 포함되어 있습니다. 이러한 제안은 해당 오류 페이지에서 확인할 수 있습니다.
SMA 에서 변환 오류가 발생하면 변환된 코드에 EWI (오류, 경고, 정보) 설명을 추가하고 문제 인벤토리 파일에 오류를 기록합니다. 그러면 시스템이 작동합니다.
변환 오류가 있는 줄에 설명 기호를 추가합니다.
파일이 실행되지 않도록 해당 줄을 주석 처리하지 않은 상태로 유지합니다.
변환 오류가 발생하면 각 오류에는 고유한 오류 코드가 있습니다. 이러한 코드의 의미와 해결 방법을 이해하려면 설명서의 소스별 문제 코드 섹션을 참조하십시오.
경고¶
경고는 SMA 의 오류와 다릅니다. 도구에서 주의해야 할 변경 사항을 감지하면 경고가 표시됩니다. 이러한 변경으로 인해 코드가 실행되지 않는 것은 아니지만 코드의 특정 측면이 소스 코드와 비교하여 변환된 출력에서 다르게 보이거나 동작할 수 있음을 나타냅니다.
경고 메시지가 표시되는 일반적인 이유입니다.
코드가 다르게 표시됩니다. SMA 는 EWI (오류, 경고 또는 정보) 메시지를 생성하는 변환을 수행합니다.
일부 특정 시나리오는 성공적으로 변환되지 않을 수 있습니다. 특정 기능이 99.9%의 테스트 케이스에서 작동하지만 특정 매개 변수 조합에서 실패하는 경우 이 도구는 경고를 생성합니다. 코드에서 이러한 특정 매개 변수 조합을 사용하는 경우 변환 오류가 발생합니다.
요소는 생략되었습니다. 가장 빈번하게 발생하는 경고 유형입니다. 소스 시스템에서 필수적인 많은 함수나 매개 변수는 Snowflake에서는 필요하지 않습니다.
경고는 일반적으로 즉각적인 작업이 필요하지 않은 정보성 메시지입니다. 그러나 대상 환경에 코드를 배포하기 전에 모든 경고를 검토할 것을 강력히 권장합니다. 변환된 코드의 테스트 단계에서는 이러한 경고를 고려해야 합니다.
경고는 특정 오류 코드로 식별됩니다. 이러한 코드의 의미를 이해하려면 이 설명서의 소스별 문제 코드 섹션을 참조하십시오.