Why People Hate Snowflake Commands

Avi Greenwald
CTO & Co-Founder | Aggua
March 9, 2023

There's a reason Snowflake is one of the most popular cloud data warehouses around: It's simple, powerful, and enterprise-ready.

Snowflake scales automatically to provide the best balance of performance and cost. It also isolates computation from storage, allowing you to scale for your highest workload without worrying about the expense.

While we can establish that Snowflake is an amazing platform, it’s not without its cons. It’s only truly accessible once you've read and understood the documentation to run commands.

What is Snowflake?

Snowflake is a cloud-based data warehouse that streamlines and improves upon the traditional methods of managing and analyzing large amounts of data.

Snowflake's ingenious architecture is founded on a new SQL query engine developed specifically for use with cloud-based programs. Plus, Snowflake takes care of the setup, configuration, and management of all your gear and software, saving you time and effort.

Why is Snowflake Important?

Data is an enterprise's lifeblood. It's the fuel that powers its operations and enables it to make informed decisions, adapt quickly to change, and anticipate new opportunities. However, just having a lot of data does not imply that it is valuable; at least not until it has been properly analyzed and processed.

Today's organizations routinely generate raw data. However, as more and more businesses go digital, the volume and variety of data created often exceed the capacity of their systems and their ability to utilize them properly.

Data warehouses like Snowflake offer a way to organize, access, analyze, and act upon information for better corporate decision-making. Everything necessary to make data easily accessible is included.

Common Issues With Snowflake

Costs

Many things about Snowflake’s platform are complex. For one, understanding the costs of Snowflake is challenging and at times can be more expensive in the long run. This is because Snowflake's price is heavily dependent on your usage pattern. You receive a statement at the end of each month, and only when you wish to inquire about your charges will Snowflake supply the information.

Limited Data Migration

The popularity of Snowflake necessitates limitations on the volume of transactions allowed in its system, which makes bulk data migration difficult for organizations. It's likely that organizations will be limited to just 10GB each day if they don't have special permission to transmit more.

No Data Cap

While having no data caps for processing and storage sounds amazing, Snowflake's pay-as-you-go pricing structure may cause your company to overspend for storage.

Furthermore, if you don't pay close attention to the data you upload to the cloud, you'll unavoidably load low-quality data that hasn't been properly vetted.

The Problem With Snowflake’s Commands

Apart from some account issues, users have also encountered a few problems with Snowflake commands.

Snowflake Data Store Creation Can Cause Errors

Creating a Snowflake data store in QDS, sometimes results in the following error:

`Cannot perform SELECT. This session does not have a current database. Call ‘USE DATABASE’, or use a qualified name.`

This happens when the user default role does not have access to the specified database. If the Snowflake user does not have an assigned "default role" and no role is specified in the connection string, the PUBLIC role is used, which may not have database access.

User roles in configurations cannot be specified when creating a data store in QDS so you need to ensure that the default role linked to the credential has database access rights.

Query Issues

Some queries will fail unless it is entered exactly or has escape characters, which can be frustrating. Some database name queries that contain hyphens (-) fail. To work around this issue, you will have to compose Spark commands and applications with additional escape characters.

("\"database-name\"")

On the other hand, if your query contains column names with whitespace or other non-standard characters and fails, you need to include additional escape characters in the query.

("\"column name\"")

Retrieving Data with Snowflake Time-Travel and Fail-Safe

Snowflake has the ability to restore deleted or changed data. You can clone, query, or recover historical data going back up to 90 days using Snowflake time travel. Similarly, in the event of an accident or emergency, you can restore past data using Snowflake fail-safe mechanism.

To retrieve the data, time-traveling commands like SELECT, CREATE, CLONE, and UNDROP are employed.

Conclusion and Final Thoughts

While Snowflake offers a variety of incredible capabilities, they can only be used after reading documentation and executing commands. It's difficult, for example, to add security features and masking. Another instance is if you wanted to do anything more than once, let's say you have some ETL you want to be written into Snowflake, you have to run enough commands that provide that user for the ETL to offer him.

When you want to provide someone access to enter data, there are occasions when you can’t, and trying it again, twice, or even four times still doesn't fix the problem. You will have to go through the documentation again and repeat the process until you get it right. In the end, your team will have wasted hours of their time and end up frustrated.

While these circumstances may be manageable and fixable when you have a small team, things start to alter dramatically when you have a large amount of data flowing in.

Save Up to 30% On Your Snowflake Expenses »

Subscribe To Our Newsletter