One of the most common questions I get when speaking to people about Snowflake is: “Why do you call it a data warehouse and not a database?” This is a very reasonable question given some of the characteristics of Snowflake.
At Snowflake, in part, we say we are a full relational database management system (RDBMS) built for the cloud. We are ACID compliant and we support standard SQL. Sounds like a database to me, too. Let’s take a closer look just to be sure.
What is a database?
A database is a collection of information organized to be easily accessed, managed and updated. While there are many types of databases available today, the most common is an RDBMS. But when most folks say “database”, they usually mean a traditional RDBMS that handles Online Transaction Processing (OLTP).
So, what are some of the defining characteristics of an OLTP database?
- Designed for rapid storage and retrieval of small sets of current data records in support of transactions and interactions within an enterprise.
- Data is organized in tables and columns, allowing users access via structured query language (SQL).
- Handles quick, real-time activity such as entering a customer name, recording a sale and recording all accounting activity of that sale.
- Works well for basic operational reporting of a limited number of records. Analytic reporting is relegated to simple, static reports often driven by IT.
What is a data warehouse?
Some of the defining characteristics of a data warehouse are:
- A database designed to store and process large volumes of current and historical data collected from multiple sources inside and outside the enterprise for deep analysis.
- Organizes data into tables and columns, and allows users access via SQL.
- Optimized for loading, integrating and analyzing very large amounts of data.
- Designed to support descriptive, diagnostic, predictive and prescriptive analytic workloads.
Snowflake definitely includes the overlapping characteristics of both a database and a data warehouse－ACID compliant, support for standard SQL, etc. But Snowflake also embodies all of the defining characteristics of a data warehouse.
One of the key differentiators of Snowflake, from other solutions, is that it’s specifically designed for data warehousing and high speed analytic processing. Rather than a generalized SQL database that has been “tuned” or even adapted to handle these type of workloads, Snowflake was built from the ground up for the cloud to optimize loading, processing and query performance for very large volumes of data. Therefore, hands down, Snowflake is a data warehouse.
So, why do we still need a specialized data warehouse engine?
As OLTP databases have been able to scale higher and innovations like in-memory databases have emerged, some organizations have questioned whether they still need a separate technology or specialized system for reporting and analytics. The answer, again, requires us to look at the basics: What benefits emerge from storing and analyzing data in a separate system?
- It eases the burden of reporting from transactional systems by removing the contention for limited and expensive resources.
- It produces more business-friendly data results by allowing the data to be restructured to a more suitable format.
- It provides access to a wider array of reports more quickly because all the resources in the data warehouse are dedicated to reporting and analysis.
- It integrates valuable data from across the enterprise for richer insight. Something that can’t (and shouldn’t) be done in an OLTP system.
For more information on how you can up your data warehousing game with a modern, built-for-the-cloud approach, check out some of our free resources such as our ebook The Data Warehouse: The Engine That Drives Analytics. We would love to help you on your journey to the cloud so keep an eye on this blog or follow us on Twitter (@snowflakedb and @kentgraziano) to keep up with all the news and happenings here at Snowflake.