Snowpark Migration Accelerator: SMA 인벤토리

Snowpark Migration Accelerator(SMA)는 코드베이스를 분석하여 상세한 데이터를 생성하며, 이 데이터는 보고서 폴더에 스프레드시트(인벤토리)로 저장됩니다. 이 데이터는 두 가지 유형의 보고서를 생성하는 데 사용됩니다.

  1. 평가 요약

  2. 큐레이팅된 보고서

인벤토리 파일을 이해하는 것이 처음에는 어려워 보일 수 있지만, 소스 워크로드와 변환된 워크로드 모두에 대한 귀중한 인사이트를 제공합니다. 아래에서 각 출력 파일과 해당 열에 대해 자세히 설명합니다.

이러한 인벤토리는 원격 측정 데이터 수집을 통해서도 공유됩니다. 자세한 내용은 이 설명서의 원격 측정 섹션을 참조하십시오.

평가 보고서 세부 정보

AssessmentReport.json 파일은 애플리케이션의 상세 보고서 및 평가 요약 섹션에 표시되는 데이터를 저장합니다. 이 파일은 주로 이러한 보고서를 채우는 데 사용되며 다른 스프레드시트에서도 사용할 수 있는 정보를 포함할 수 있습니다.

DBX 요소 인벤토리

DbxElementsInventory.csv에는 노트북 파일 내에서 발견된 DBX 요소 목록이 포함되어 있습니다.

  • 요소: DBX 요소 이름입니다.

  • ProjectId: 프로젝트의 이름(도구가 실행된 루트 디렉터리)입니다.

  • FileId: 요소가 발견된 파일 및 해당 파일의 상대 경로입니다.

  • 개수: 해당 요소가 한 라인에 표시되는 횟수입니다.

  • 카테고리: 요소 카테고리입니다.

  • 별칭: 요소의 별칭입니다(가져오기 요소에만 적용됨).

  • 종류: 각 요소의 카테고리입니다. 여기에는 함수 또는 Magic이 포함될 수 있습니다.

  • 라인: 요소가 발견된 소스 파일의 라인 번호입니다.

  • PackageName: 요소가 발견된 패키지의 이름입니다.

  • 지원됨: 이 참조가 “지원”되는지 여부입니다. 값은 True 또는 False입니다.

  • 자동화됨: 도구가 자동으로 변환을 할 수 있는지 여부입니다. 값은 True 또는 False입니다.

  • 상태: 각 요소의 분류입니다. 옵션은 이름 바꾸기, 직접, 헬퍼, 변환, WorkAround, NotSupported, NotDefined입니다.

  • 문: 요소가 사용된 코드입니다. [NOTE: 이 열은 원격 분석을 통해 전송되지 않습니다.]

  • SessionId: 도구가 실행될 때마다 할당되는 고유 식별자입니다.

  • SnowConvertCoreVersion: 도구의 핵심 코드 프로세스에 대한 버전 번호입니다.

  • SnowparkVersion: 지정된 기술 및 도구 실행에 사용할 수 있는 Snowpark API 버전입니다.

  • CellId: 노트북 파일 내에서 이 요소가 발견된 셀의 번호가 매겨진 위치입니다.

  • ExecutionId: SMA가 실행될 때 할당되는 고유 식별자입니다.

실행 흐름 인벤토리

ExecutionFlowInventory.csv에는 발견된 함수 호출을 기반으로 다양한 워크로드 범위 간의 관계 목록이 포함되어 있습니다. 이 인벤토리의 주요 목적은 진입점 식별을 위한 기초 자료로 활용하는 것입니다.

  • 호출자: 호출이 발견된 범위의 전체 이름입니다.

  • CallerType: 호출이 발견된 범위의 유형입니다. 다음과 같을 수 있습니다. 함수, 클래스 또는 모듈일 수 있습니다.

  • 호출됨: 호출된 요소의 전체 이름입니다.

  • InvokedType: 요소의 유형입니다. 함수 또는 클래스일 수 있습니다.

  • FileId: 파일의 상대 경로입니다. (사용자가 SMA 도구에서 선택한 입력 폴더에서 시작)

  • CellId: 노트북 파일 내에서 호출이 발견된 셀의 번호입니다(해당하는 경우).

  • 라인: 호출이 발견된 라인의 번호입니다.

  • 열: 호출이 발견된 열의 번호입니다.

  • ExecutionId: 실행 ID입니다.

검사점 인벤토리

Checkpoints.csv에는 사용자 워크로드에 대해 생성된 검사점 목록이 포함되어 있으며, 이러한 검사점은 Snowflake Exentesion의 검사점 기능에서 완전히 사용할 수 있습니다.

  • 이름: 검사점 이름입니다(앞에서 설명한 형식 사용).

  • FileId: 파일의 상대 경로(사용자가 SMA 도구에서 선택한 입력 폴더에서 시작)입니다.

  • CellId: 노트북 파일 내에서 DataFrame 작업이 발견된 셀의 번호입니다.

  • 라인: DataFrame 작업이 발견된 라인의 번호입니다.

  • 열: DataFrame 작업이 발견된 열의 번호입니다.

  • 유형: 검사점의 사용 사례입니다(컬렉션 또는 유효성 검사).

  • DataFrameName: DataFrame의 이름입니다.

  • 위치: DataFrame 이름의 할당 번호입니다.

  • 활성화됨: 검사점이 활성화되었는지 여부를 나타냅니다(True 또는 False).

  • 모드: 컬렉션의 모드 번호(Schema [1] 또는 DataFrame[2])입니다.

  • 샘플: DataFrame의 샘플입니다.

  • EntryPoint: 검사점을 실행하는 흐름을 안내하는 진입점입니다.

  • ExecutionId: 실행 ID입니다.

DataFrames 인벤토리

DataFramesInventory.csv에는 사용자 워크로드에 대한 검사점을 생성하는 데 사용할 데이터 프레임 할당 목록이 포함되어 있습니다.

  • FullName: DataFrame의 전체 이름입니다.

  • 이름: DataFrame의 변수에 대한 간단한 이름입니다.

  • FileId: 파일의 상대 경로(사용자가 SMA 도구에서 선택한 입력 폴더에서 시작)입니다.

  • **CellId: ** 노트북 파일 내에서 DataFrame 작업이 발견된 셀의 번호입니다.

  • 라인: DataFrame 작업이 발견된 라인의 번호입니다.

  • 열: DataFrame 작업이 발견된 열의 번호입니다.

  • AssignmentNumber: 파일에서 이 특정 식별자(기호 아님)의 할당 번호입니다.

  • RelevantFunction: 해당 요소가 수집된 이유와 관련된 함수입니다.

  • RelatedDataFrames: 작업에 포함된 DataFrame의 정규화된 이름(세미콜론으로 구분)입니다.

  • EntryPoints: 이 단계에서는 비어 있습니다. 이후 단계에서 채워집니다.

  • ExecutionId: 실행 ID입니다.

아티팩트 종속성 인벤토리

ArtifactDependencyInventory.csv에는 SMA에서 분석한 각 파일의 아티팩트 종속성 목록이 포함되어 있습니다. 이 인벤토리를 통해 사용자는 Snowflake에서 파일이 정상적으로 작동하기 위해 필요한 아티팩트를 확인할 수 있습니다.

서드 파티 라이브러리, SQL 엔터티, 읽기 또는 쓰기 작업의 소스, 워크로드의 다른 소스 코드 파일 등은 아티팩트로 간주됩니다.

  • ExecutionId: 실행의 식별자입니다.

  • FileId: 소스 코드 파일의 식별자입니다.

  • 종속성: 현재 파일에 있는 아티팩트 종속성입니다.

  • 유형: 아티팩트 종속성의 유형입니다.

    • UserCodeFile: 소스 코드 또는 노트북입니다.

    • IOSources: 입력 및 출력 작업에 필요한 리소스입니다.

    • ThirdPartyLibraries: 서드 파티 라이브러리입니다.

    • UnknownLibraries: SMA에 의해 출처가 결정되지 않은 라이브러리입니다.

    • SQLObjects: SQL 엔터티(예: 테이블 또는 뷰)입니다.

  • 성공: 아티팩트에 개입이 필요한 경우 FALSE가 표시되며 그렇지 않은 경우 TRUE가 표시됩니다.

  • Status_Detail: 유형에 따른 아티팩트 종속성의 상태입니다.

    • UserCodeFile:

      • 구문 분석됨: 파일이 성공적으로 구문 분석되었습니다.

      • NotParsed: 파일 구문 분석에 실패했습니다.

    • IOSources:

      • 존재함: 작업의 리소스가 워크로드에 있습니다.

      • DoesNotExists: 작업의 리소스가 입력에 없습니다.

    • ThirdPartyLibraries:

      • 지원됨: 라이브러리가 Snowpark Anaconda에서 지원됩니다.

      • NotSupported: 라이브러리가 Snowpark Anaconda에서 지원되지 않습니다.

    • UnknownLibraries:

      • NotSupported: SMA에 의해 출처가 결정되지 않았기 때문입니다.

    • SQLObject

      • DoesNotExists: 엔터티를 생성하는 임베드된 문이 입력 소스 코드에 없습니다.

      • 존재함: 엔터티를 생성하는 임베드된 문이 입력 소스 코드에 있습니다.

  • 인자: 유형을 기반으로 하는 아티팩트 종속성의 추가 데이터입니다.

  • 위치: 소스 코드 파일에서 아티팩트 종속성이 사용되는 위치의 셀 ID 및 라인 번호 컬렉션입니다.

  • IndirectDependencies: 직접적으로는 아니지만 이 파일이 사용하는 다른 파일의 목록입니다.

  • TotalIndirectDependencies: 간접 종속성의 총 개수입니다.

  • DirectParents: 이 파일을 직접 사용하는 파일의 목록입니다.

  • TotalDirectParents: 직접 상위 파일의 총 개수입니다.

  • IndirectParents: (다른 파일을 통해) 이 파일을 간접적으로 사용하는 파일의 목록입니다.

  • TotalIndirectParents: 간접 상위 파일의 총 개수입니다.

파일 인벤토리

files.csv 에는 도구 실행 중에 처리된 모든 파일의 파일 유형과 크기를 포함한 전체 목록이 포함되어 있습니다.

  • 경로: 루트 디렉터리를 기준으로 한 파일 위치입니다. 예를 들어, 루트 디렉터리에 있는 파일은 해당 파일 이름만 표시됩니다.

  • 기술: 소스 코드의 프로그래밍 언어(Python 또는 Scala)

  • FileKind: 파일에 소스 코드가 포함되어 있는지 또는 다른 유형(예: 텍스트 또는 로그 파일)인지 식별합니다

  • BinaryKind: 파일이 사람이 읽을 수 있는 텍스트인지 이진 파일인지를 나타냅니다

  • 바이트: 바이트 단위로 측정된 파일 크기입니다

  • SupportedStatus: 파일 지원 상태는이 컨텍스트에 적용되지 않으므로 항상 “DoesNotApply”가 표시됩니다

사용량 인벤토리 가져오기

ImportUsagesInventory.csv 파일에는 코드베이스에 있는 모든 외부 라이브러리 가져오기 목록이 포함되어 있습니다. 외부 라이브러리는 소스 코드 파일로 가져오는 패키지 또는 모듈입니다.

  • 요소: Spark 참조의 고유 식별자입니다

  • ProjectId: 도구가 실행된 루트 디렉터리 이름입니다

  • FileId: Spark 참조가 포함된 상대 경로 및 파일 이름입니다

  • 카운트: 한 라인에서 요소의 발생 횟수

  • 별칭: 요소의 대체 이름(선택 사항)

  • Kind: 모든 요소가 가져오기이므로 항상 비어 있음/null

  • 라인: 요소가 표시되는 소스 코드 라인 번호

  • PackageName: 요소가 포함된 패키지

  • 지원됨: 참조를 변환할 수 있는지 여부(true/false)를 나타냅니다

  • 자동화됨: 비어 있음/null(사용되지 않는 열)

  • 상태: 항상 “유효하지 않음”(사용되지 않는 열)

  • 문: 요소를 사용한 실제 코드 [원격 측정에 포함되지 않음]

  • SessionId: 각 도구 실행에 대한 고유 식별자

  • SnowConvertCoreVersion: 도구의 코어 처리 엔진 버전 번호

  • SnowparkVersion: 특정 기술에 대한 Snowpark API 버전 사용 가능

  • ElementPackage: 가져온 요소가 포함된 패키지 이름(사용할 수 있는 경우)

  • CellId: 노트북 파일의 경우, 해당 요소가 포함된 셀 번호를 나타냅니다

  • ExecutionId: 이 SMA 실행의 고유 식별자

  • 출처: 가져오기의 소스 유형(BuiltIn, ThirdPartyLib 또는 공백)

입력 파일 인벤토리

InputFilesInventory.csv 파일에는 파일 유형과 크기에 따라 조직된 모든 파일의 자세한 목록이 포함되어 있습니다.

  • 요소: 파일 이름, FileId 와 동일함

  • ProjectId: 도구가 실행된 루트 디렉터리로 표시되는 프로젝트 이름입니다

  • FileId: Spark 참조가 포함된 파일의 전체 경로(상대 경로로 표시됨)

  • 개수: 이 파일 이름을 공유하는 파일 수입니다

  • SessionId: 각 도구 세션에 할당된 고유 식별자

  • 확장자: 파일 확장자 유형

  • 기술: 파일 확장자에 따라 결정되는 프로그래밍 언어 또는 기술 유형입니다

  • 바이트: 바이트 단위로 측정된 파일 크기입니다

  • CharacterLength: 파일 내 총 문자 수

  • LinesOfCode: 파일 내 총 코드 라인 수

  • ParsingResult: 셀이 성공적으로 구문 분석되었는지(“성공”) 또는 오류가 발생했는지(“오류”)를 나타냅니다

입력 및 출력 파일 인벤토리

IOFilesInventory.csv 파일에는 코드에서 읽거나 쓰는 모든 외부 파일 및 리소스 목록이 포함되어 있습니다.

  • 요소: 읽기 또는 쓰기 작업을 위해 액세스하는 특정 항목(파일, 변수 또는 구성 요소)입니다

  • ProjectId: 도구가 실행된 루트 디렉터리 이름입니다

  • FileId: Spark 코드가 감지된 전체 경로 및 파일 이름

  • 개수: 이 파일 이름의 발생 횟수입니다

  • isLiteral: 읽기/쓰기 위치가 리터럴 값으로 지정되었는지 여부를 나타냅니다

  • 형식: 감지된 파일 형식(예: CSV, JSON)을 SMA 에서 식별할 수 있는 경우

  • FormatType: 식별자 형식이 명시적지 여부를 지정합니다

  • 모드: 작업이 “읽기” 또는 “쓰기”인지 여부를 나타냅니다

  • 지원됨: Snowpark가 이 작업을 지원하는지 여부를 나타냅니다

  • 라인: 읽기 또는 쓰기 작업이 발생하는 파일의 라인 번호입니다

  • SessionId: 각 도구 세션에 할당된 고유 식별자

  • OptionalSettings: 요소에 대해 정의된 추가 매개 변수를 나열합니다

  • CellId: 노트북 파일의 경우, 특정 셀 위치를 식별합니다(노트북이 아닌 파일의 경우 null)

  • ExecutionId: 도구가 실행될 때마다 고유 식별자

문제 인벤토리

Issues.csv 파일에는 코드베이스에서 발견된 모든 변환 문제에 대한 자세한 보고서가 포함되어 있습니다. 각 문제에 대해 다음을 확인할 수 있습니다.

  • 문제를 설명하는 설명

  • 문제가 발생한 파일 내의 정확한 위치

  • 문제 유형에 대한 고유 코드 식별자

특정 문제에 대한 자세한 내용은 설명서의 문제 분석 섹션을 참조하십시오.

  • 코드: 도구가 감지한 각 문제에 할당된 고유 식별자입니다

  • 설명: 해당되는 경우 Spark 참조 이름을 포함하여 문제에 대한 자세한 설명

  • 카테고리: 발견된 문제의 유형으로, 다음 중 하나일 수 있습니다.

    • 경고

    • 변환 오류

    • 구문 분석기 오류

    • 헬퍼

    • 변환

    • WorkAround

    • NotSupported

    • NotDefined

  • NodeType: 문제가 감지된 구문 노드 식별자입니다

  • FileId: Spark 참조가 발견된 상대 경로 및 파일 이름입니다

  • ProjectId: 도구가 실행된 루트 디렉터리 이름입니다

  • 라인: 문제가 발생한 소스 파일의 특정 라인 번호입니다

  • 열: 문제가 발생한 라인의 특정 문자 위치입니다

조인 인벤토리

JoinsInventory.csv 파일에는 코드베이스에 있는 모든 데이터프레임 조인 작업의 포괄적인 목록이 포함되어 있습니다.

  • 요소: 행 번호: 조인이 시작되는 위치(여러 행에 걸쳐 있는 경우 끝나는 위치)를 나타내는 행 번호입니다

  • ProjectId: 도구가 실행된 루트 디렉터리 이름입니다

  • FileId: Spark 참조가 포함된 파일의 경로와 이름입니다

  • 개수: 동일한 파일 이름을 가진 파일 수

  • isSelfJoin: 테이블을 자체와 조인하는 경우 TRUE, 그렇지 않은 경우 FALSE

  • HasLeftAlias: 조인의 왼쪽에 별칭이 정의된 경우 TRUE, 그렇지 않은 경우 FALSE

  • HasRightAlias: 조인의 오른쪽에 별칭이 정의된 경우 TRUE, 그렇지 않은 경우 FALSE

  • 라인: 조인의 시작 라인 번호

  • SessionId: 각 도구 세션에 할당된 고유 식별자

  • CellId: 요소가 포함된 노트북 셀의 식별자(노트북이 아닌 파일의 경우 null)

  • ExecutionId: 각 도구 실행에 대한 고유 식별자

노트북 셀 인벤토리

NotebookCellsInventory.csv 파일은 소스 코드 내용 및 셀당 코드 라인 수를 포함해 노트북 내의 모든 셀에 대한 자세한 목록을 제공합니다.

  • 요소: 소스 코드에 사용되는 프로그래밍 언어(Python, Scala 또는 SQL)

  • ProjectId: 도구가 실행된 루트 디렉터리 이름입니다

  • FileId: Spark 코드가 감지된 전체 경로 및 파일 이름

  • 개수: 이 특정 파일 이름을 가진 파일의 개수입니다

  • CellId: 노트북 파일의 경우, 코드가 포함된 셀의 고유 식별자(노트북이 아닌 파일의 경우 null)

  • 인자: 이 필드는 항상 비어 있습니다(null)

  • LOC: 셀의 총 코드 라인 수

  • 크기: 셀의 총 문자 수입니다

  • SupportedStatus: 셀의 모든 요소가 지원되는지 (TRUE) 또는 지원되지 않는 요소가 있는지 (FALSE) 나타냅니다

  • ParsingResult: 셀이 성공적으로 구문 분석되었는지(“성공”) 또는 구문 분석 오류가 있었는지(“오류”)를 표시합니다

노트북 크기 인벤토리

NotebookSizeInventory.csv 파일은 노트북 파일에 있는 각 프로그래밍 언어에 대한 코드 라인의 요약을 제공합니다.

  • 파일 이름: 스프레드시트 파일의 이름(FileId)과 동일한 이름입니다

  • ProjectId: 도구가 실행된 루트 디렉터리 이름입니다

  • FileId: Spark 참조가 포함된 파일의 상대 경로 및 이름입니다

  • 개수: 이 특정 파일 이름을 가진 파일의 개수입니다

  • PythonLOC: 노트북 셀의 Python 코드 라인 수(일반 파일의 경우 0)

  • ScalaLOC: 노트북 셀의 Scala 코드 라인 수(일반 파일의 경우 0)

  • SqlLOC: 노트북 셀의 SQL 코드 라인 수(일반 파일의 경우 0)

  • 라인: 이 필드는 항상 비어(null) 있습니다

  • SessionId: 각 도구 세션에 할당된 고유 식별자

  • ExecutionId: 각 도구 실행에 할당된 고유 식별자

Pandas 사용량 인벤토리

PandasUsagesInventory.csv 파일에는 스캔 프로세스 중에 Python 코드베이스에서 발견된 모든 Pandas API 참조의 포괄적인 목록이 포함되어 있습니다.

  • 요소: Pandas 참조에 대한 고유 식별자입니다

  • ProjectId: 도구가 실행된 루트 디렉터리 이름입니다

  • FileId: Spark 참조가 포함된 파일의 상대 경로입니다

  • 카운트: 한 라인에서 요소의 발생 횟수

  • 별칭: 요소에 사용되는 대체 이름(가져오기에만 적용됨)

  • 종류: 클래스, 변수, 함수, 가져오기 등과 같은 요소의 유형입니다.

  • 라인: 요소가 발견된 소스 파일 라인 번호입니다

  • PackageName: 요소가 포함된 패키지

  • 지원됨: 참조가 지원되는지 여부(true/false)를 나타냅니다

  • 자동화: 도구가 요소를 자동으로 변환할 수 있는지 여부(true/false)를 나타냅니다

  • 상태: 요소 분류: 이름 바꾸기, 직접, 헬퍼, 변환, WorkAround, NotSupported 또는 NotDefined

  • 문: 해당 요소가 사용되는 컨텍스트 [원격 측정에 포함되지 않음]

  • SessionId: 각 도구 실행에 대한 고유 식별자

  • SnowConvertCoreVersion: 도구의 Core 처리 코드 버전 번호

  • SnowparkVersion: 특정 기술 및 도구 실행에 사용 가능한 Snowpark API 버전

  • PandasVersion: 코드베이스에서 요소를 식별하는 데 사용되는 Pandas API 버전

  • CellId: FileId 의 셀 식별자(노트북에만 해당, 그렇지 않으면 null)

  • ExecutionId: 각 도구 실행에 대한 고유 식별자

Spark 사용량 인벤토리

SparkUsagesInventory.csv 파일은 코드에서 Spark API 함수가 사용되는 위치와 방법을 식별합니다. 이 정보는 코드의 마이그레이션 준비 상태를 나타내는 준비도 점수를 계산하는 데 도움이 됩니다.

  • 요소: Spark 참조의 고유 식별자입니다

  • ProjectId: 도구가 실행된 루트 디렉터리 이름입니다

  • FileId: Spark 참조가 포함된 상대 경로 및 파일 이름입니다

  • 카운트: 한 라인에서 요소의 발생 횟수

  • 별칭: 요소의 별칭(가져오기 요소에만 적용됨)

  • 종류: 요소의 카테고리(예: 클래스, 변수, 함수, 가져오기)

  • 라인: 요소가 발견된 소스 파일 라인 번호입니다

  • PackageName: 요소가 포함된 패키지 이름입니다

  • 지원됨: 참조가 지원되는지 여부(true/false)를 나타냅니다

  • 자동화: 도구가 요소를 자동으로 변환할 수 있는지 여부(true/false)를 나타냅니다

  • 상태: 요소 분류 (이름 바꾸기, 직접, 헬퍼, 변환, WorkAround, NotSupported, NotDefined)

  • 문: 해당 요소가 사용되는 실제 코드 [참고: 이 열은 원격 측정을 통해 전송되지 않습니다.]

  • SessionId: 각 도구 실행에 대한 고유 식별자

  • SnowConvertCoreVersion: 도구의 코어 프로세스 버전 번호입니다

  • SnowparkVersion: 특정 기술 및 도구 실행에 사용 가능한 Snowpark API 버전

  • CellId: 노트북 파일의 경우, 요소가 발견된 셀의 숫자 위치입니다

  • ExecutionId: 이 특정 SMA 실행에 대한 고유 식별자

SqlStatementsInventory.csv 파일에는 Spark SQL 요소에 있는 SQL 키워드 수가 포함되어 있습니다.

  • 요소: SQL 문을 포함하는 코드 요소의 이름입니다

  • ProjectId: 도구가 실행된 루트 디렉터리 이름

  • FileId: Spark 참조가 포함된 파일의 상대 경로입니다

  • 카운트: 한 라인에서 요소의 발생 횟수

  • InterpolationCount: 이 요소에 삽입된 외부 요소 수

  • 키워드: SQL 키워드와 그 빈도가 포함 된 사전

  • 크기: SQL 문의 총 문 수

  • LiteralCount: 요소의 문자열 리터럴 개수

  • NonLiteralCount: 문자열 리터럴이 아닌 SQL 구성 요소 개수

  • 라인: 요소가 표시되는 라인 번호

  • SessionId: 각 도구 세션의 고유 식별자

  • CellId: 요소가 포함된 노트북 셀의 식별자(노트북에 없는 경우 null)

  • ExecutionId: 각 도구 실행에 대한 고유 식별자

SQL 요소 인벤토리

SQLElementsInventory.csv 파일에는 Spark SQL 요소 내에서 발견되는 SQL 문의 수가 포함되어 있습니다.

SQL 분석 보고서에 포함된 필드는 다음과 같습니다.

  • 요소: SQL 코드 요소 유형 (예: SqlSelect, SqlFromClause)

  • ProjectId: 도구가 실행된 루트 디렉터리 이름

  • FileId: SQL 코드가 포함된 파일 경로

  • 카운트: 한 라인에서 요소의 발생 횟수

  • NotebookCellId: 노트북 셀의 ID

  • 라인: 요소가 표시되는 라인 번호

  • 열: 열: 요소가 표시되는 열 번호입니다

  • SessionId: 각 도구 세션의 고유 ID

  • ExecutionId: 각 도구 실행의 고유 ID

  • SqlFlavor: 분석 대상 SQL 유형(예: Spark SQL, Hive SQL)

  • RootFullName: 기본 코드 요소의 전체 이름

  • RootLine: 주요 요소의 라인 번호

  • RootColumn: 주 요소의 열 번호

  • TopLevelFullName: 최상위 SQL 문의 전체 이름

  • TopLevelLine: 최상위 문의 라인 번호

  • TopLevelColumn: 최상위 문의 열 번호

  • ConversionStatus: SQL 변환 결과(예: 성공, 실패)

  • 카테고리: SQL 문의 유형(예: DDL, DML, DQL)

  • EWI: 오류 경고 정보 코드

  • ObjectReference: 참조되는 SQL 오브젝트의 이름(예: 테이블 이름, 뷰 이름)

SQL 임베디드 사용량 인벤토리

SqlEmbeddedUsageInventory.csv 파일에는 Spark SQL 요소에 있는 SQL 키워드 수가 포함되어 있습니다.

  • 요소: 코드에 있는 SQL 구성 요소의 유형(예: Select 문, From 절 또는 숫자 리터럴)

  • ProjectId: 도구가 실행된 루트 디렉터리 이름입니다

  • FileId: SQL 참조가 포함된 파일의 위치 및 상대 경로입니다

  • 카운트: 이 요소가 한 라인에 표시되는 횟수

  • ExecutionId: 각 도구 실행에 할당된 고유 ID

  • LibraryName: 사용 중인 라이브러리 이름

  • HasLiteral: 요소에 리터럴 값이 포함되어 있는지 표시합니다

  • HasVariable: 요소에 변수가 포함되어 있는지 표시합니다

  • HasFunction: 요소에 함수 호출이 포함되어 있는지 표시합니다

  • ParsingStatus: 현재 구문 분석 상태(성공, 실패 또는 부분)

  • HasInterpolation: 요소에 문자열 보간이 포함되어 있는지 표시합니다

  • CellId: 노트북 셀의 식별자

  • 라인: 요소가 있는 라인 번호입니다

  • 열: 요소를 찾을 수 있는 열 번호입니다

서드 파티 사용 인벤토리

ThirdPartyUsagesInventory.csv 파일에는 다음이 포함됩니다

  • 요소: 서드 파티 참조의 고유 식별자입니다

  • ProjectId: 도구가 실행된 프로젝트의 루트 디렉터리 이름입니다

  • FileId: Spark 참조가 포함된 파일의 상대 경로입니다

  • 카운트: 한 라인에 포함된 요소의 발생 횟수입니다

  • 별칭: 요소에 할당된 대체 이름(해당되는 경우)

  • 종류: 종류: 요소의 유형 분류(변수, 유형, 함수 또는 클래스)입니다

  • 라인: 요소가 발견된 소스 파일 라인 번호입니다

  • PackageName: 전체 패키지 이름(Python으로 작성된 ProjectId 및 FileId 의 조합)

  • 문: 해당 요소가 사용되는 실제 코드[참고: 텔레메트리 데이터에 포함되지 않음]

  • SessionId: 각 도구 세션의 고유 식별자

  • CellId: 요소가 발견된 노트북 셀 식별자(노트북이 아닌 파일의 경우 null)

  • ExecutionId: 각 도구 실행에 대한 고유 식별자

패키지 인벤토리

packagesInventory.csv 파일에는 다음이 포함됩니다

  • 패키지 이름: 분석 중인 패키지의 이름입니다.

  • 프로젝트 이름: 도구가 실행된 루트 디렉터리에 해당하는 프로젝트의 이름입니다.

  • 파일 위치: 패키지가 발견된 파일 경로(상대 경로로 표시됨)입니다.

  • 발생 횟수: 이 패키지가 한 라인의 코드에 표시되는 횟수입니다.

도구 실행 요약

tool_execution.csv 파일에는 현재 Snowpark Migration Accelerator(SMA) 도구의 실행에 대한 필수 정보가 포함되어 있습니다.

  • ExecutionId: 도구가 실행될 때마다 할당되는 고유 식별자입니다.

  • ToolName: 사용 중인 도구의 이름입니다. PythonSnowConvert 또는 SparkSnowConvert (Scala의 경우)일 수 있습니다.

  • Tool_Version: 소프트웨어의 버전 번호입니다.

  • AssemblyName: 코드 프로세서의 전체 이름(ToolName 의 자세한 버전)입니다.

  • LogFile: 오류 또는 장애가 발생했을 때 로그 파일이 생성되었는지 여부를 나타냅니다.

  • FinalResult: 오류 또는 장애가 발생한 경우 도구가 어느 지점에서 중지되었는지를 나타냅니다.

  • ExceptionReport: 장애가 발생했을 때 오류 보고서가 생성되었는지 여부를 나타냅니다.

  • StartTime: 도구가 실행되기 시작한 날짜와 시간입니다.

  • EndTime: 도구 실행이 완료된 날짜와 시간입니다.

  • SystemName: 도구를 실행한 기계의 일련 번호(문제 해결 및 라이선스 확인에만 사용됨).