Architecture Overview Flashcards
Supported Data Types in Snowflake
Most basic SQL data types
Cloning in Snowflake
Cloning in Snowflake is a relatively unique feature to Snowflake. This allows for direct replication of an object.
What objects can be cloned in Snowflake?
- Databases
- Schemas
- Non-temporary tables
Cloned Object inheritance
Cloned Objects inherit the parameter values set at the account level by default, but can be overwritten by individual objects.
Do changes made to the source of a clone flow over to the clone?
No
Requirements to create a clone tables?
You must have SELECT access to that table.
Requirements to create clones for pipes, streams, or tasks?
OWNERSHIP access on the object.
Requirements to create a clone for remaining objects? (excluding table, pipes, streams, and tasks)
USAGE
Does a clone contribute to overall data storage costs?
Only after the clone has been modified from its source.
Secure Data Sharing
Enables selected objects in a database within your account to be shared with other Snowflake accounts.
Objects that can be shared with Secure Data Sharing
- Tables
- External Tables
- Secure Views
- Secure Materialized Views
- Secure UDFs
Access Writes on shared database objects?
Read-only
Are there any limits on the shares you can export/import as a provider/consumer?
No
Is any data copied with Secure Data Sharing?
No, all sharing is accomplished through Snowflake’s Cloud Services Layer, so shared data does not take up any storage in the consumers account.
Shares
Snowflake enables the sharing of databases through shares, which are created by data providers and imported by consumers.
Shares are named objects that encapsulate all the information required to share a database.
Components of a Share
- Privileges that grant access to the database(s) and the schema(s) containing the objects to share.
- Privileges that grant access to the specific objects in the database.
- The consumer accounts with which the database and its objects are shared.
Data Provider
Any Snowflake account that creates shares and makes them available to other Snowflake accounts to consume. As a provider you share a database with one or more Snowflake account.
Data Consumer
Any account that chooses to create a database from a share made available by a provider.
Once a shared database is added to your account you may query that database just as you would any other database in your account.
Can data sharing be done between non-Snowflake accounts?
No, you must create a Snowflake reader account if your Consumer is not ready to become a Snowflake customer.
Who does a reader account belong to?
It belongs to the Provider account that created it.
Limitations of a Reader Account?
Reader Accounts can query data that has been shared with it, but cannot perform any DML tasks allowed with a full account.
Snowflake Data Marketplace
Data Marketplace uses Snowflake Secure Data Sharing to connect providers of data with Consumers directly within Snowflake itself.
This allows for third party data providers to provide datasets directly into your Snowflake account to query without transformation.
Snowflake Data Marketplace provides a single location to source this data from various vendors.
Snowflake Marketplace Availability
Data Marketplace is available to all Snowflake accounts except for Azure Government hosted accounts and VPS accounts.
Role Requirements to create Databases from Snowflake Marketplace
Users/role with the IMPORT SHARE privilege are the only ones who can create databases from Snowflake Marketplace.
Types of Data Listing
- Standard Data Listings
- Personalized Data Listings
Standard Data Listings
Provides instant access to a published data set. This is best for generic, aggregated, non-customer specific datasets. This includes details about the data, sample queries, and information about the data provider.
Personalized Data Listings
Allows for customers to request specific data sets. These can be premium datasets or data specific to a customer of that provider.
Each listing includes details about the shared data, sample usage examples, and information about the data provider.
How to join Snowflake Marketplace?
You must request to join the Marketplace as a provider using Snowsight web forms or through the Snowflake website.
Data Exchange
Data Exchange is a data hub for securely collaborating around data between a selected group of members/consumers It enables providers to PRIVATELY publish data to be discovered by consumers (invite only).
The main difference between Data Exchange and Data Marketplace?
Data Exchange is invite only and private, Data Marketplace is mostly public and open.
Data Exchange Admin
The account that hosts the Data Exchange and is responsible for for configuring the Data Exchange and managing members (providers/consumers).
Data Exchange benefits
- Break down data silos
- Exchange data between business units internal to your company
- Collaborate with external parties such as vendors, suppliers, partners, and customers.
- Find and consume data on other Data Exchanges to get business insights.
Snowflake Elastic Storage & Compute
Due to the separation of compute and storage within Snowflake, this allows for efficient scaling and elasticity within a warehouse, leading to cost savings all around.
Difference between traditional warehouses and elasticity with Snowflake
In traditional warehouses compute and storage are usually provisioned ahead of time and are harder/impossible to scale or change in the middle of a subscription.
With Snowflake, you only pay for the storage you use that month, and can scale up/down/out compute according to demand.
Snowflake Organizations
An organization is a first-class Snowflake object that links accounts owned by your business entity.
What are Snowflake Organizations used for?
- Simplify Account Management and Billing
- Database Replication
- Failover/Failback
- Secure Data Sharing
- Misc admin tasks
Snowflake Cloud Partners
- Amazon Web Services (AWS)
- Microsoft Azure
- Google Cloud Platform (GCP)
Scripting Connectors
- Python
- Spark
- Kafka
- Node.js
- Go
- .NET
- JDBC (Java)
- PHP