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:

  1. O resumo da avaliação

  2. Os relatórios selecionados

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.

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).