This page provides you with instructions on how to extract data from Microsoft SQL Server and load it into Panoply. (If this manual process sounds onerous, check out Stitch, which can do all the heavy lifting for you in just a few clicks.)
What is Microsoft SQL Server?
Microsoft SQL Server is a relational database management system that supports applications on a single machine, on a local area network, or across the web. SQL Server supports Microsoft's .NET framework out of the box, and integrates nicely into the Microsoft ecosystem.
What is Panoply?
Panoply provides a Smart Cloud Data Warehouse platform that lets users set up a new Amazon Redshift instance in just a few clicks. It uses machine learning algorithms to accomplish complex tasks like schema building, data mining, modeling, scaling, performance tuning, security, and backup. Panoply can import data with no schema, no modeling, and no configuration, and you can use analysis, SQL, and visualization tools on data in Panoply just as you would if you were creating a Redshift data warehouse on your own.
Getting data out of SQL Server
The most common way most folks who work with databases get their data is by using queries for extraction. With SELECT statements you can filter, sort, and limit the data you want to retrieve. If you need to export data in bulk, you can use Microsoft SQL Server Management Studio, which enables you to export entire tables and databases in formats like text, CSV, or SQL queries that can restore the database if run.
Loading data into Panoply
Once you've identified the columns you want to insert, you can use the Redshift CREATE TABLE statement to set up a table to receive all of the data.
To populate that table, you might be tempted to use INSERT statements to add data to your Redshift table row by row. Don't do that; Redshift isn't optimized for inserting data one row at a time. If you have a high volume of data to be inserted, a better approach is to load the data into Amazon S3 and use the COPY command to migrate it into Redshift.
Keeping SQL Server data up to date
All set! You've written a script to move data from SQL Server into your data warehouse. But data freshness is one of the most important aspects of any analysis – what happens when you have new data that you need to add?
You could load the entire SQL Server database again. Doing this is almost guaranteed to be slow and painful, and cause all kinds of latency.
A better approach is to build your script to recognize new and updated records in the source database. Using an auto-incrementing field as a key is a great way to accomplish this. The key functions something like a bookmark, so your script can resume where it left off. When you've built in this functionality, you can set up your script as a cron job or continuous loop to get new data as it appears in SQL Server.
Other data warehouse options
Panoply is great, but sometimes you need to optimize for different things when you're choosing a data warehouse. Some folks choose to go with Amazon Redshift, Google BigQuery, PostgreSQL, Snowflake, or Microsoft Azure SQL Data Warehouse, which are RDBMSes that use similar SQL syntax. Others choose a data lake, like Amazon S3. If you're interested in seeing the relevant steps for loading data into one of these platforms, check out To Redshift, To BigQuery, To Postgres, To Snowflake, To Azure SQL Data Warehouse, and To S3.
Easier and faster alternatives
If all this sounds a bit overwhelming, don’t be alarmed. If you have all the skills necessary to go through this process, chances are building and maintaining a script like this isn’t a very high-leverage use of your time.
Thankfully, products like Stitch were built to move data from Microsoft SQL Server to Panoply automatically. With just a few clicks, Stitch starts extracting your Microsoft SQL Server data via the API, structuring it in a way that's optimized for analysis, and inserting that data into your Panoply data warehouse.