LogoLogo
SnowflakeDocumentation Home
  • Snowpark Migration Accelerator Documentation
  • General
    • Introduction
    • Getting Started
      • Download and Access
      • Installation
        • Windows Installation
        • MacOS Installation
        • Linux Installation
    • Conversion Software Terms of Use
      • Open Source Libraries
    • Release Notes
      • Old Version Release Notes
        • SC Spark Scala Release Notes
          • Known Issues
        • SC Spark Python Release Notes
          • Known Issues
    • Roadmap
  • User Guide
    • Overview
    • Before Using the SMA
      • Supported Platforms
      • Supported Filetypes
      • Code Extraction
      • Pre-Processing Considerations
    • Project Overview
      • Project Setup
      • Configuration and Settings
      • Tool Execution
    • Assessment
      • How the Assessment Works
      • Assessment Quick Start
      • Understanding the Assessment Summary
      • Readiness Scores
      • Output Reports
        • Curated Reports
        • SMA Inventories
        • Generic Inventories
        • Assessment zip file
      • Output Logs
      • Spark Reference Categories
    • Conversion
      • How the Conversion Works
      • Conversion Quick Start
      • Conversion Setup
      • Understanding the Conversion Assessment and Reporting
      • Output Code
    • Using the SMA CLI
      • Additional Parameters
  • Use Cases
    • Assessment Walkthrough
      • Walkthrough Setup
        • Notes on Code Preparation
      • Running the Tool
      • Interpreting the Assessment Output
        • Assessment Output - In Application
        • Assessment Output - Reports Folder
      • Running the SMA Again
    • Conversion Walkthrough
    • Sample Project
    • Using SMA with Docker
    • SMA CLI Walkthrough
  • Issue Analysis
    • Approach
    • Issue Code Categorization
    • Issue Codes by Source
      • General
      • Python
        • SPRKPY1000
        • SPRKPY1001
        • SPRKPY1002
        • SPRKPY1003
        • SPRKPY1004
        • SPRKPY1005
        • SPRKPY1006
        • SPRKPY1007
        • SPRKPY1008
        • SPRKPY1009
        • SPRKPY1010
        • SPRKPY1011
        • SPRKPY1012
        • SPRKPY1013
        • SPRKPY1014
        • SPRKPY1015
        • SPRKPY1016
        • SPRKPY1017
        • SPRKPY1018
        • SPRKPY1019
        • SPRKPY1020
        • SPRKPY1021
        • SPRKPY1022
        • SPRKPY1023
        • SPRKPY1024
        • SPRKPY1025
        • SPRKPY1026
        • SPRKPY1027
        • SPRKPY1028
        • SPRKPY1029
        • SPRKPY1030
        • SPRKPY1031
        • SPRKPY1032
        • SPRKPY1033
        • SPRKPY1034
        • SPRKPY1035
        • SPRKPY1036
        • SPRKPY1037
        • SPRKPY1038
        • SPRKPY1039
        • SPRKPY1040
        • SPRKPY1041
        • SPRKPY1042
        • SPRKPY1043
        • SPRKPY1044
        • SPRKPY1045
        • SPRKPY1046
        • SPRKPY1047
        • SPRKPY1048
        • SPRKPY1049
        • SPRKPY1050
        • SPRKPY1051
        • SPRKPY1052
        • SPRKPY1053
        • SPRKPY1054
        • SPRKPY1055
        • SPRKPY1056
        • SPRKPY1057
        • SPRKPY1058
        • SPRKPY1059
        • SPRKPY1060
        • SPRKPY1061
        • SPRKPY1062
        • SPRKPY1063
        • SPRKPY1064
        • SPRKPY1065
        • SPRKPY1066
        • SPRKPY1067
        • SPRKPY1068
        • SPRKPY1069
        • SPRKPY1070
        • SPRKPY1071
        • SPRKPY1072
        • SPRKPY1073
        • SPRKPY1074
        • SPRKPY1075
        • SPRKPY1076
        • SPRKPY1077
        • SPRKPY1078
        • SPRKPY1079
        • SPRKPY1080
        • SPRKPY1081
        • SPRKPY1082
        • SPRKPY1083
        • SPRKPY1084
        • SPRKPY1085
        • SPRKPY1086
        • SPRKPY1087
        • SPRKPY1088
        • SPRKPY1089
        • SPRKPY1101
      • Spark Scala
        • SPRKSCL1000
        • SPRKSCL1001
        • SPRKSCL1002
        • SPRKSCL1100
        • SPRKSCL1101
        • SPRKSCL1102
        • SPRKSCL1103
        • SPRKSCL1104
        • SPRKSCL1105
        • SPRKSCL1106
        • SPRKSCL1107
        • SPRKSCL1108
        • SPRKSCL1109
        • SPRKSCL1110
        • SPRKSCL1111
        • SPRKSCL1112
        • SPRKSCL1113
        • SPRKSCL1114
        • SPRKSCL1115
        • SPRKSCL1116
        • SPRKSCL1117
        • SPRKSCL1118
        • SPRKSCL1119
        • SPRKSCL1120
        • SPRKSCL1121
        • SPRKSCL1122
        • SPRKSCL1123
        • SPRKSCL1124
        • SPRKSCL1125
        • SPRKSCL1126
        • SPRKSCL1127
        • SPRKSCL1128
        • SPRKSCL1129
        • SPRKSCL1130
        • SPRKSCL1131
        • SPRKSCL1132
        • SPRKSCL1133
        • SPRKSCL1134
        • SPRKSCL1135
        • SPRKSCL1136
        • SPRKSCL1137
        • SPRKSCL1138
        • SPRKSCL1139
        • SPRKSCL1140
        • SPRKSCL1141
        • SPRKSCL1142
        • SPRKSCL1143
        • SPRKSCL1144
        • SPRKSCL1145
        • SPRKSCL1146
        • SPRKSCL1147
        • SPRKSCL1148
        • SPRKSCL1149
        • SPRKSCL1150
        • SPRKSCL1151
        • SPRKSCL1152
        • SPRKSCL1153
        • SPRKSCL1154
        • SPRKSCL1155
        • SPRKSCL1156
        • SPRKSCL1157
        • SPRKSCL1158
        • SPRKSCL1159
        • SPRKSCL1160
        • SPRKSCL1161
        • SPRKSCL1162
        • SPRKSCL1163
        • SPRKSCL1164
        • SPRKSCL1165
        • SPRKSCL1166
        • SPRKSCL1167
        • SPRKSCL1168
        • SPRKSCL1169
        • SPRKSCL1170
        • SPRKSCL1171
        • SPRKSCL1172
        • SPRKSCL1173
        • SPRKSCL1174
        • SPRKSCL1175
      • SQL
        • SparkSQL
          • SPRKSPSQL1001
          • SPRKSPSQL1002
          • SPRKSPSQL1003
          • SPRKSPSQL1004
          • SPRKSPSQL1005
          • SPRKSPSQL1006
        • Hive
          • SPRKHVSQL1001
          • SPRKHVSQL1002
          • SPRKHVSQL1003
          • SPRKHVSQL1004
          • SPRKHVSQL1005
          • SPRKHVSQL1006
      • Pandas
        • PNDSPY1001
        • PNDSPY1002
        • PNDSPY1003
        • PNDSPY1004
      • DBX
        • SPRKDBX1001
    • Troubleshooting the Output Code
      • Locating Issues
    • Workarounds
    • Deploying the Output Code
  • Translation Reference
    • Translation Reference Overview
    • SIT Tagging
      • SQL statements
    • SQL Embedded code
    • HiveSQL
      • Supported functions
    • Spark SQL
      • Spark SQL DDL
        • Create Table
          • Using
      • Spark SQL DML
        • Merge
        • Select
          • Distinct
          • Values
          • Join
          • Where
          • Group By
          • Union
      • Spark SQL Data Types
      • Supported functions
  • Workspace Estimator
    • Overview
    • Getting Started
  • INTERACTIVE ASSESSMENT APPLICATION
    • Overview
    • Installation Guide
  • Support
    • General Troubleshooting
      • How do I give SMA permission to the config folder?
      • Invalid Access Code error on VDI
      • How do I give SMA permission to Documents, Desktop, and Downloads folders?
    • Frequently Asked Questions (FAQ)
      • Using SMA with Jupyter Notebooks
      • How to request an access code
      • Sharing the Output with Snowflake
      • DBC files explode
    • Glossary
    • Contact Us
Powered by GitBook
On this page
  1. INTERACTIVE ASSESSMENT APPLICATION

Installation Guide

Deploy the Interactive Assessment Application in Snowflake.

PreviousOverviewNextGeneral Troubleshooting

Last updated 24 days ago

This section guides you through deploying the Interactive Assessment Application (IAA) in your Snowflake account. The IAA is a Streamlit app that leverages the power of Snowflake within Snowflake to analyze the output data from the Snowpark Migration Accelerator (SMA). This document provides the necessary steps and resources to analyze your workload within your Snowflake environment using the IAA.

Step-by-step Guide

Before deploying the IAA, ensure you have the following prerequisites:

  • You have executed the have the output data ready for analysis.

  • You have a Snowflake account. (This is required to host and run the IAA.) If not, a will work.

  • You have VSCode or Jupyter installed to run the notebook: or.

  • Ensure you have Python 3.11 or later installed. This version is required for compatibility with the IAA notebook.

    • You may already have Python installed on your system. If not, follow one of the options below.

      • For Linux or Mac, you can use the script:.

      • For Windows, you can get it from the if you don't have Python.

      • Another alternative is to install with Miniconda

Uploading all the mappings table might take longer than selecting just the latest. We recomend uploading the latest if you are not interest in comparing your execution with previous versions

In VS Code you can select the Map folder, that contains all the folders with the APIs and EWIs versions and delete those that you would not like to upload, in this case you can leave only the 7.1.2 version.

Let's deploy the IAA!

This step by step guide applies to VS Code

Repository

  1. Click the "Code" button, and copy your preferred method for cloning the repository (e.g., HTTPS or SSH)

  2. Choose the directory where you want to save the repository on your local machine, if applicable

Executing the Notebook in VS Code

Note: This deployment process uses the Snowflake CLI.

  1. Open the downloaded repo in the VSCode environment.

  2. In VS Code click Yes, I trust the authors

iaa_config.toml file

Part 1: Getting Credentials from "Connect a tool to Snowflake"

  1. In your Snowflake account, click your initials in the bottom-left corner.

  2. Select "Connect a tool to Snowflake".

  3. Open the file `iaa_config.toml`.

  4. Copy the following information from the "Connect a tool to Snowflake" window and paste it into the `iaa_config.toml` file:

    1. Account Identifier

    2. User Name

Part 2: Providing Additional Details

In the `iaa_config.toml` file, also provide the following information:

  1. Password: Enter your Snowflake password.

  2. Database Name: Enter the name of the database you want to use for the IAA.

  3. Schema Name: Enter the name of the schema you want to use for the IAA.

  4. Warehouse Name: Enter the name of the warehouse running in your Snowflake account.

Save the changes in the `iaa_config.toml` file.

Warning: The cell that validates the connection entries may fail if the .toml information is wrong, in that case, verify the input information.

Kernel

In order to executes the .ipynb file you need to install the Python and Jupyter extensions in VS Code.

  1. Select the python environment that comply with the version required to execute the notebook. (3.11 or later).

Executing the Notebook

To deploy the app in your Snowflake account, please select "Run all" the cells.

These cells configure automatically the local environment and establish the connection to your Snowflake account to prepare for the Streamlit app deployment. Specifically, these cells will:

  1. Verify the Python3.11 requirement

  2. Verify check the Snowflake CLI Requirement

  3. Execute the iaa_config.toml file is executed to connect with the Snowflake Account Configuration:

    1. Read the local .toml file

    2. Validate connection Entries

    3. Establish a connection to Snowflake

  4. Prepare the environment to deploy the Streamlit app in Snowflake

    1. Configure local environment

    2. Retrieve Connection Entries

  5. Deploy the Streamlit app to Snowflake using the Snowflake CLI:

    1. Deploy the App Schema to SiS.

    2. Deploy the Maps Stage to SiS.

    3. Deploy the APP to SiS.

    4. Refresh the Deployment

    5. Retrieve the app information and provide an access button.

    That's it! It is time to Upload your SMA Output

It is time to upload your SMA Output!

Locate the SMA output zip file, named in the format ‘AssessmentFiles_*.zip’, in the output folder.

  1. Go to your Snowflake Account

Data > Databases > [Your IAA Database] > Stages > SMA_EXECUTIONS
  1. Upload you AssessmentFiles.zip.

  1. Open the IAA to explore your execution information. This step can take around 30 seconds.

  1. Once open the IAA the landing page will look like this:

Lets Explore your execution using the IAA.

Exploring the IAA

The Interactive Assessment Application (IAA) is now installed in your Snowflake account. You have successfully uploaded your SMA output executions and are ready to explore the compatibility of your Spark code with Snowpark.

Remember how to access the IAA in your Snowflake account:

Projects > Streamlit > Interactive Assessment Application

The IAA will allow you to identify which parts of your code are directly compatible and which parts require manual intervention or further optimization. It is recommended touse the latest SMA version. However, if you have older executions, the IAA will compare them against the latest API mapping versions.

Navigating the IAA

There are 2 differents sections in the IAA. Explore my executions and Explore the compatibility between Spark and Snowpark

Explore my executions

Select an execution from the list. Your selection will be maintained as you navigate through the different sections of the IAA.

A readiness score will be provided for:

  • Spark API

  • Third-Party

  • SQL

Code metrics by technology:

  • Total lines of code

  • Total files

In the left bar you can navigate throught the sections that will guide you to understand how to better plan your migration.

Explore the compatibility between Spark and Snowpark.

How compatible is my Spark code to Snowpark?

This section provides access to the latest API mappings to Spark, PySpark, and Pandas. The SMA team researches these mapping tables and reflects the current compatibility status for each unique element shown below.

This tables helps users to assess compatibility between the source API and/or the third party libraries to Snowflake library/ Snowpark API:

  • API Module Mappings

  • Spark API Mappings

  • PySpark API Mappings

  • Pandas API Mappings

Once you've completed checking the prerequisites, proceed to the '' tab.

Go to the Snowflake Labs' open-source GitHub: .

https://github.com/Snowflake-Labs/IAA-Support
Deployment
SMA
Snowflake Trial Account
VSCode
Jupyter
deployment/pre_req_install_python_3.sh
official Python website
docs.conda.io
Mappings available to upload
SMA_EXECUTIONS stage in your Snowflake account.
Uploading SMA output into the SMA_EXECUTIONS stage
IAA Landing Page
IAA home screen.
"Select an execution" screen.
Readiness Scores
Available mapping tables.