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