Snowpark Migration Accelerator: Inventários SMA¶
O Snowpark Migration Accelerator (SMA) analisa sua base de código e produz dados detalhados, que são armazenados na pasta Relatórios como planilhas (inventários). Esses dados são usados para criar dois tipos de relatórios:
Entender os arquivos de inventário pode parecer assustador no início, mas eles fornecem informações valiosas sobre a carga de trabalho de origem e a carga de trabalho convertida. A seguir, explicamos detalhadamente cada arquivo de saída e suas colunas.
Esses inventários também são compartilhados por meio da coleta de dados de telemetria. Para obter mais detalhes, consulte a seção de telemetria desta documentação.
Detalhes do relatório de avaliação¶
O arquivo AssessmentReport.json armazena dados que são exibidos nas seções Detailed Report (Relatório detalhado) e Assessment Summary (Resumo da avaliação) do aplicativo. Esse arquivo é usado principalmente para preencher esses relatórios e pode conter informações que também estão disponíveis em outras planilhas.
DBX Elements Inventory¶
The DbxElementsInventory.csv lists the DBX elements found inside notebooks.
Element: The DBX element name.
ProjectId: Name of the project (root directory the tool was run on)
FileId: File where the element was found and the relative path to that file.
Count: The number of times that element shows up in a single line.
Category: The element category.
Alias: The alias of the element (applies just for import elements).
Kind: A category for each element. These could include Function or Magic.
Line: The line number in the source files where the element was found.
PackageName: The name of the package where the element was found.
Supported: Whether this reference is “supported” or not. Values: True/False.
Automated: Whether or not the tool can automatically convert it. Values: True/False.
Status: The categorization of each element. The options are Rename, Direct, Helper, Transformation, WorkAround, NotSupported, NotDefined.
Statement: The code where the element was used. [NOTE: This column is not sent via telemetry.]
SessionId: Unique identifier for each run of the tool.
SnowConvertCoreVersion: The version number for the core code process of the tool.
SnowparkVersion: The version of Snowpark API available for the specified technology and run of the tool.
CellId: If this element was found in a notebook file, the numbered location of the cell where this element was in the file.
ExecutionId: The unique identifier for this execution of the SMA.
Execution Flow Inventory¶
The ExecutionFlowInventory.csv lists the relations between the different workload scopes, based on the function calls found. This inventory main purpose is to serve as the base for the entry points identification.
Caller: The full name of the scope where the call was found.
CallerType: The type of the scope where the call was found. This can be: Function, Class, or Module.
Invoked: The full name of the element that was called.
InvokedType: The type of the element. This can be: Function or Class.
FileId: The relative path of the file. (Starting from the input folder the user chose in the SMA tool)
CellId: The cell number where the call was found inside a notebook file, if applies.
Line: The line number where the call was found.
Column: The column number where the call was found.
ExecutionId: The execution id.
Checkpoints Inventory¶
The Checkpoints.csv lists the generated checkpoints for the user workload, these checkpoints are completely capable to be used in the Checkpoints Feature from the Snowflake Exentesion.
Name: The checkpoint name (using the format described before).
FileId: the relative path of the file (starting from the input folder the user chose in the SMA tool).
CellId: the number of cell where the DataFrame operation was found inside a notebook file.
Line: line number where the DataFrame operation was found.
Column: the column number where the DataFrame operation was found.
Type: the use case of the checkpoints (Collection or Validation).
DataFrameName: The name of the DataFrame.
Location: The assignment number of the DataFrame name.
Enabled: Indicates whether the checkpoint is enabled (True or False).
Mode: The mode number of the collection (Schema [1] or DataFrame [2]).
Sample: The sample of the DataFrame.
EntryPoint: The entry point that guide the flow to execute the checkpoint.
ExecutionId: the execution id.
DataFrames Inventory¶
The DataFramesInventory.csv lists the dataframes assignments found in order to be used to generate checkpoints for the user workload.
FullName: The full name of the DataFrame.
Name: The simple name of the variable of the DataFrame.
FileId: The relative path of the file (starting from the input folder the user chose in the SMA tool).
CellId: The number of cells where the DataFrame operation was found inside a notebook file.
Line: The line number where the DataFrame operation was found.
Column: The column number where the DataFrame operation was found.
AssignmentNumber: The number of assignments for this particular identifier (not symbol) in the file.
RelevantFunction: The relevant function why this was collected.
RelatedDataFrames: The full qualified name of the DataFrame(s) involved in the operation (separated by semicolon).
EntryPoints: it will be empty for this phase. In a later phase, it will be filled.
ExecutionId: the execution id.
Artifact Dependency Inventory¶
The ArtifactDependencyInventory.csv lists the artifact dependencies of each file analyzed by the SMA. This inventory allows the user to determine which artifacts are needed for the file to work properly in Snowflake.
The following are considered artifacts: a third-party library, SQL entity, source of a read or write operation, and another source code file in the workload.
ExecutionId: the identifier of the execution.
FileId: the identifier of the source code file.
Dependency: the artifact dependency that the current file has.
Type: the type of the artifact dependency.
UserCodeFile: source code or notebook.
IOSources: resource required for input and output operation.
ThirdPartyLibraries: a third-party library.
UnknownLibraries: a library whose origin was not determined by SMA.
SQLObjects: an SQL entity: table or view, for example.
Success: If the artifact needs any intervention, it shows FALSE; otherwise, it shows TRUE.
Status_Detail: the status of the artifact dependency, based on the type.
UserCodeFile:
Parsed: the file was parsed successfully.
NotParsed: the file parsing failed.
IOSources:
Exists: the resource of the operation is in the workload.
DoesNotExists: the resource of the operation is not present in the input.
ThirdPartyLibraries:
Supported: the library is supported by Snowpark Anaconda.
NotSupported: the library is not supported by Snowpark Anaconda.
UnknownLibraries:
NotSupported: since the origin was not determined by SMA.
SQLObject
DoesNotExists: the embedded statement that creates the entity is not in the input source code.
Exists: the embedded statement that creates the entity is in the input source code.
Arguments: an extra data of the artifact dependency, based on the type.
Location: the collection of cell ID and line number where the artifact dependency is being used in the source code file.
IndirectDependencies: A list of other files that this file relies on, even if not directly.
TotalIndirectDependencies: The total count of these indirect dependencies.
DirectParents: A list of files that directly use this file.
TotalDirectParents: The total count of these direct parent files.
IndirectParents: A list of files that use this file indirectly (through other files).
TotalIndirectParents: The total count of these indirect parent files.
Inventário de arquivos¶
O arquivo files.csv contém uma lista completa de todos os arquivos processados durante a execução da ferramenta, inclusive seus tipos e tamanhos.
Caminho: O local do arquivo em relação ao diretório raiz. Por exemplo, os arquivos no diretório raiz mostrarão apenas o nome do arquivo.
Technology: A linguagem de programação do código-fonte (Python ou Scala)
FileKind: Identifica se o arquivo contém código-fonte ou é de outro tipo (como arquivos de texto ou de registro)
BinaryKind: Indica se o arquivo é um texto legível por humanos ou um arquivo binário
Bytes: O tamanho do arquivo medido em bytes
SupportedStatus: Sempre mostra «DoesNotApply», pois o status de suporte do arquivo não é aplicável nesse contexto
Inventário de usos de importação¶
O arquivo ImportUsagesInventory.csv contém uma lista de todas as importações de bibliotecas externas encontradas em sua base de código. Uma biblioteca externa é qualquer pacote ou módulo importado para seus arquivos de código-fonte.
Elemento: O identificador exclusivo da referência do Spark
ProjectId: O nome do diretório raiz onde a ferramenta foi executada
FileId: O caminho relativo e o nome do arquivo que contém a referência do Spark
Count: Número de ocorrências do elemento em uma única linha
Alias: Nome alternativo opcional para o elemento
Kind: Sempre vazio/nulo, pois todos os elementos são importações
Line: Número da linha do código-fonte em que o elemento aparece
PackageName: Pacote que contém o elemento
Suportado: Indica se a referência pode ser convertida (True/False)
Automatizado: Empty/null (coluna obsoleta)
Status: Sempre «Invalid» (coluna obsoleta)
Instrução: O código real usando o elemento [Não incluído na telemetria]
SessionId: Identificador exclusivo para cada execução de ferramenta
SnowConvertCoreVersion: Número da versão do mecanismo de processamento principal da ferramenta
SnowparkVersion: Versão do Snowpark API disponível para a tecnologia específica
ElementPackage: Nome do pacote que contém o elemento importado (quando disponível)
CellId: Para arquivos de notebook, indica o número da célula que contém o elemento
ExecutionId: Identificador exclusivo para a execução do SMA
Origin: Tipo de origem da importação (BuiltIn, ThirdPartyLib, ou em branco)
Inventário de arquivos de entrada¶
O arquivo InputFilesInventory.csv contém uma lista detalhada de todos os arquivos, organizados por seus tipos e tamanhos.
Elemento: O nome do arquivo, que é idêntico ao FileId
ProjectId: O nome do projeto, representado pelo diretório raiz onde a ferramenta foi executada
FileId: O caminho completo para o arquivo que contém a referência do Spark, mostrado como um caminho relativo
Count: O número de arquivos que compartilham esse nome de arquivo
SessionId: Um identificador exclusivo atribuído a cada sessão da ferramenta
Extensão: O tipo de extensão do arquivo
Technology: A linguagem de programação ou o tipo de tecnologia, determinado pela extensão do arquivo
Bytes: O tamanho do arquivo medido em bytes
CharacterLength: O número total de caracteres no arquivo
LinesOfCode: O número total de linhas de código no arquivo
ParsingResult: Indica se a célula foi analisada com sucesso («Successful») ou se encontrou erros («Error»)
Inventário de arquivos de entrada e saída¶
O arquivo IOFilesInventory.csv contém uma lista de todos os arquivos e recursos externos que o seu código lê ou grava.
Element: O item específico (arquivo, variável ou componente) que está sendo acessado para operações de leitura ou gravação
ProjectId: O nome do diretório raiz em que a ferramenta foi executada
FileId: O caminho completo e o nome do arquivo em que o código Spark foi detectado
Count: O número de ocorrências desse nome de arquivo
isLiteral: Indica se o local de leitura/gravação está especificado como um valor literal
Format: O formato de arquivo detectado (como CSV, JSON) se o SMA puder identificá-lo
FormatType: Especifica se o formato identificado é explícito
Mode: Indica se a operação é de «leitura» ou «gravação»
Suportado: Indica se o Snowpark suporta essa operação
Line: O número da linha no arquivo em que ocorre a operação de leitura ou gravação
SessionId: Um identificador exclusivo atribuído a cada sessão da ferramenta
OptionalSettings: Lista todos os parâmetros adicionais definidos para o elemento
CellId: Para arquivos de notebook, identifica o local específico da célula (nulo para arquivos que não sejam de notebook)
ExecutionId: Um identificador exclusivo para cada vez que a ferramenta é executada
Inventário de problemas¶
O arquivo Issues.csv contém um relatório detalhado de todos os problemas de conversão descobertos em sua base de código. Para cada problema, você encontrará:
Uma descrição explicando o problema
O local exato no arquivo onde o problema ocorre
Um identificador de código exclusivo para o tipo de problema
Para obter informações mais detalhadas sobre problemas específicos, consulte a seção de análise de problemas da nossa documentação.
Code: Um identificador exclusivo atribuído a cada problema detectado pela ferramenta
Description: Uma explicação detalhada do problema, incluindo o nome de referência do Spark, quando aplicável
Category: O tipo de problema encontrado, que pode ser um dos seguintes:
Aviso
Erro de conversão
Erro do analisador
Auxiliar
Transformação
WorkAround
NotSupported
NotDefined
NodeType: O identificador do nó de sintaxe onde o problema foi detectado
FileId: O caminho relativo e o nome do arquivo onde a referência do Spark foi encontrada
ProjectId: O nome do diretório raiz onde a ferramenta foi executada
Line: O número específico da linha no arquivo de origem em que o problema ocorre
Column: A posição específica do caractere na linha em que o problema ocorre
Inventário de junções¶
O arquivo JoinsInventory.csv contém uma lista abrangente de todas as operações de junção de dataframe encontradas na base de código.
Element: Número da linha que indica onde a junção começa (e termina, se estiver abrangendo várias linhas)
ProjectId: Nome do diretório raiz em que a ferramenta foi executada
FileId: Caminho e nome do arquivo que contém a referência do Spark
Contagem: Número de arquivos com o mesmo nome de arquivo
isSelfJoin: TRUE se estiver unindo uma tabela com ela mesma, FALSE caso contrário
HasLeftAlias: TRUE se um alias for definido para o lado esquerdo da junção, FALSE caso contrário
HasRightAlias: TRUE se um alias for definido para o lado direito da junção, FALSE caso contrário
Line: Número da linha inicial da junção
SessionId: Identificador exclusivo atribuído a cada sessão da ferramenta
CellId: Identificador da célula do notebook que contém o elemento (nulo para arquivos que não são de notebook)
ExecutionId: Identificador exclusivo para cada execução de ferramenta
Inventário de células de notebook¶
O arquivo NotebookCellsInventory.csv fornece uma lista detalhada de todas as células de um notebook, incluindo o conteúdo do código-fonte e o número de linhas de código por célula.
Element: A linguagem de programação usada no código-fonte (Python, Scala ou SQL)
ProjectId: O nome do diretório raiz em que a ferramenta foi executada
FileId: O caminho completo e o nome do arquivo em que o código Spark foi detectado
Count: O número de arquivos com esse nome de arquivo específico
CellId: Para arquivos de bloco de notas, o identificador exclusivo da célula que contém o código (nulo para arquivos que não são de bloco de notas)
Arguments: Este campo está sempre vazio (nulo)
LOC: O número total de linhas de código na célula
Size: O número total de caracteres na célula
SupportedStatus: Indica se todos os elementos da célula são suportados (TRUE) ou se há elementos não suportados (FALSE)
ParsingResult: Mostra se a célula foi analisada com sucesso («Successful») ou se houve erros de análise («Error»)
Inventário de tamanho de notebook¶
O arquivo NotebookSizeInventory. csv fornece um resumo das linhas de código para cada linguagem de programação encontrada nos arquivos do notebook.
filename: O nome do arquivo da planilha (idêntico ao FileId)
ProjectId: O nome do diretório raiz em que a ferramenta foi executada
FileId: O caminho relativo e o nome do arquivo que contém as referências do Spark
Count: O número de arquivos com esse nome de arquivo específico
PythonLOC: Número de linhas de código Python nas células do notebook (zero para arquivos regulares)
ScalaLOC: Número de linhas de código Scala nas células do notebook (zero para arquivos regulares)
SqlLOC: Número de linhas de código SQL nas células do notebook (zero para arquivos regulares)
Linha: Este campo está sempre vazio (nulo)
SessionId: Um identificador exclusivo atribuído a cada sessão da ferramenta
ExecutionId: Um identificador exclusivo atribuído a cada execução de ferramenta
Inventário de usos do Pandas¶
O arquivo PandasUsagesInventory.csv contém uma lista abrangente de todas as referências ao Pandas API encontradas em sua base de código Python durante o processo de varredura.
Element: O identificador exclusivo da referência pandas
ProjectId: O nome do diretório raiz onde a ferramenta foi executada
FileId: O caminho relativo para o arquivo que contém a referência do Spark
Count: Número de ocorrências do elemento em uma única linha
Alias: O nome alternativo usado para o elemento (aplica-se apenas a importações)
Kind: O tipo de elemento, como classe, variável, função, importação, etc.
Line: O número da linha do arquivo de origem onde o elemento foi encontrado
PackageName: O pacote que contém o elemento
Suportado: Indica se a referência é suportada (True/False)
Automatizado: Indica se a ferramenta pode converter automaticamente o elemento (True/False)
Status: Classificação do elemento: Rename, Direct, Helper, Transformation, WorkAround, NotSupported, ou NotDefined
Instrução: O contexto em que o elemento foi usado [Não incluído na telemetria]
SessionId: Um identificador exclusivo para cada execução de ferramenta
SnowConvertCoreVersion: O número da versão do código de processamento principal da ferramenta
SnowparkVersion: A versão do Snowpark API disponível para a tecnologia específica e a execução da ferramenta
PandasVersion: A versão do pandas API usada para identificar elementos na base de código
CellId: O identificador da célula no FileId (somente para notebooks; caso contrário, nulo)
ExecutionId: Um identificador exclusivo para cada execução de ferramenta
Inventário de usos do Spark¶
O arquivo SparkUsagesInventory.csv identifica onde e como as funções do Spark API são usadas em seu código. Essas informações ajudam a calcular a Pontuação de preparação, que indica o quanto seu código está pronto para a migração.
Elemento: O identificador exclusivo da referência do Spark
ProjectId: O nome do diretório raiz onde a ferramenta foi executada
FileId: O caminho relativo e o nome do arquivo que contém a referência do Spark
Count: Número de ocorrências do elemento em uma única linha
Alias: O alias do elemento (aplica-se somente a elementos de importação)
Tipo: A categoria do elemento (por exemplo, classe, variável, função, importação)
Line: O número da linha do arquivo de origem onde o elemento foi encontrado
PackageName: O nome do pacote que contém o elemento
Suportado: Indica se a referência é suportada (True/False)
Automatizado: Indica se a ferramenta pode converter automaticamente o elemento (True/False)
Status: Categorização de elementos (Rename, Direct, Helper, Transformation, WorkAround, NotSupported, NotDefined)
Instrução: O código real em que o elemento foi usado [NOTE: Esta coluna não é enviada via telemetria]
SessionId: Um identificador exclusivo para cada execução de ferramenta
SnowConvertCoreVersion: O número da versão do processo principal da ferramenta
SnowparkVersion: A versão disponível do Snowpark API para a tecnologia específica e a execução da ferramenta
CellId: Para arquivos de notebook, a localização numérica da célula onde o elemento foi encontrado
ExecutionId: Um identificador exclusivo para essa execução específica do SMA
O arquivo SqlStatementsInventory.csv contém uma contagem de palavras-chave SQL encontradas nos elementos do Spark SQL.
Element: Nome do elemento de código que contém a instrução SQL
ProjectId: Nome do diretório raiz em que a ferramenta foi executada
FileId: Caminho relativo ao arquivo que contém a referência do Spark
Count: Número de ocorrências do elemento em uma única linha
InterpolationCount: Número de elementos externos inseridos nesse elemento
Palavras-chave: Dicionário contendo palavras-chave SQL e sua frequência
Tamanho: Contagem total de caracteres da instrução SQL
LiteralCount: Número de literais de cadeias de caracteres no elemento
NonLiteralCount: Número de componentes SQL que não são literais de cadeia de caracteres
Linha: Número da linha em que o elemento aparece
SessionId: Identificador exclusivo para cada sessão da ferramenta
CellId: Identificador da célula do notebook que contém o elemento (nulo se não estiver em um notebook)
ExecutionId: Identificador exclusivo para cada execução de ferramenta
Inventário de elementos SQL¶
O arquivo SQLElementsInventory.csv contém uma contagem de instruções SQL encontradas nos elementos Spark SQL.
Aqui estão os campos incluídos no relatório de análise SQL:
Element: tipo de elemento de código SQL (Exemplo: SqlSelect, SqlFromClause)
ProjectId: Nome do diretório raiz em que a ferramenta foi executada
FileId: Caminho para o arquivo que contém o código SQL
Count: Número de ocorrências do elemento em uma única linha
NotebookCellId: ID da célula do notebook
Linha: Número da linha em que o elemento aparece
Coluna: Número da coluna em que o elemento aparece
SessionId: ID Exclusivo para cada sessão de ferramenta
ExecutionId: ID Exclusivo para cada execução de ferramenta
SqlFlavor: Tipo de SQL que está sendo analisado (Exemplo: Spark SQL, Hive SQL)
RootFullName: Nome completo do elemento de código principal
RootLine: Número da linha do elemento principal
RootColumn: Número da coluna do elemento principal
TopLevelFullName: Nome completo da instrução SQL de nível mais alto
TopLevelLine: Número da linha da instrução de nível mais alto
TopLevelColumn: Número da coluna da instrução de nível mais alto
ConversionStatus: Resultado da conversão SQL (Exemplo: Success, Failed)
Categoria: Tipo de instrução SQL (Exemplo: DDL, DML, DQL)
EWI: Informações de aviso de erro
ObjectReference: Nome do objeto SQL que está sendo referenciado (exemplo: nome da tabela, nome da visualização)
Inventário de uso de SQL incorporado¶
O arquivo SqlEmbeddedUsageInventory. csv contém uma contagem de palavras-chave SQL encontradas nos elementos Spark SQL.
Elemento: O tipo de componente SQL encontrado no código (como instrução Select, cláusula From ou literal numérico)
ProjectId: O nome do diretório raiz em que a ferramenta foi executada
FileId: O local e o caminho relativo do arquivo que contém a referência SQL
Contagem: Quantas vezes esse elemento aparece em uma única linha
ExecutionId: Um ID exclusivo atribuído a cada execução de ferramenta
LibraryName: O nome da biblioteca em uso
HasLiteral: Mostra se o elemento contém valores literais
HasVariable: Mostra se o elemento contém variáveis
HasFunction: Mostra se o elemento contém chamadas de função
ParsingStatus: O estado atual da análise (Success, Failed ou Partial)
HasInterpolation: Mostra se o elemento contém interpolações de cadeia de caracteres
CellId: O identificador da célula do notebook
Linha: O número da linha onde o elemento é encontrado
Coluna: O número da coluna onde o elemento é encontrado
Inventário de usos de terceiros¶
O arquivo ThirdPartyUsagesInventory.csv contém
Elemento: O identificador exclusivo da referência de terceiros
ProjectId: O nome do diretório raiz do projeto onde a ferramenta foi executada
FileId: O caminho relativo para o arquivo que contém a referência do Spark
Contagem: O número de ocorrências do elemento em uma única linha
Alias: O nome alternativo atribuído ao elemento (se aplicável)
Tipo: A classificação do tipo do elemento (variável, tipo, função ou classe)
Line: O número da linha do arquivo de origem onde o elemento foi encontrado
PackageName: O nome completo do pacote (combinação de ProjectId e FileId em Python)
Instrução: O código real em que o elemento foi usado [NOTE: Não incluído nos dados de telemetria]
SessionId: Um identificador exclusivo para cada sessão da ferramenta
CellId: O identificador da célula do notebook onde o elemento foi encontrado (nulo para arquivos que não são de notebook)
ExecutionId: Um identificador exclusivo para cada execução de ferramenta
Inventário de pacotes¶
O arquivo packagesInventory.csv contém
Nome do pacote: O nome do pacote que está sendo analisado.
Nome do projeto: O nome do projeto, que corresponde ao diretório raiz onde a ferramenta foi executada.
Localização do arquivo: O caminho do arquivo onde o pacote foi encontrado, mostrado como um caminho relativo.
Contagem de ocorrências: O número de vezes que esse pacote aparece em uma única linha de código.
Resumo da execução da ferramenta¶
O arquivo tool_execution.csv contém informações essenciais sobre a execução atual da ferramenta Snowpark Migration Accelerator (SMA).
ExecutionId: Um identificador exclusivo atribuído a cada vez que a ferramenta é executada.
ToolName: O nome da ferramenta que está sendo usada. Pode ser PythonSnowConvert ou SparkSnowConvert (para Scala).
Tool_Version: O número da versão do software.
AssemblyName: O nome completo do processador de código (uma versão mais detalhada de ToolName).
LogFile: Indica se um arquivo de registro foi gerado quando ocorreu um erro ou falha.
FinalResult: Indica em que ponto a ferramenta parou se ocorreu um erro ou falha.
ExceptionReport: Indica se foi gerado um relatório de erro quando ocorreu uma falha.
StartTime: A data e a hora em que a ferramenta começou a ser executada.
EndTime: A data e a hora em que a ferramenta terminou de ser executada.
SystemName: O número de série da máquina onde a ferramenta foi executada (usado apenas para solução de problemas e verificação de licenças).