These services link together all the Snowflake components to handle user requests, from login to query dispatch. The compute commands that Snowflake procured from the cloud provider is also used by the cloud services layer. Every day, Snowflake processes petabytes of data and thousands of customer accounts.
Snowflake allows flexible authentication methodologies like Local, Active Directory, Multifactor and SAML Authentications. It permits the use and maintenance of Snowflake user credentials like login name and password. In short, account and security managers can create users with passwords stored in Snowflake or other authenticators and users can access Snowflake using their login credentials.
With the capacity to immediately spin up and down an almost infinite number of concurrent workloads against the same, single copy of data, the users need not be concerned about the size of the data or the details about how a cluster is powered up instantly, with a few clicks on the corresponding interface. Behind the scenes, the infrastructure manager communicates and provides instructions to the corresponding cloud provider to immediately spin up the resources required by the users.
Snowflake metadata management is a part of the data governance discipline which involves processes, policies, workflows, and technology to identify, and organise Snowflake metadata for data consumers. Metadata management is the key to adding actionable context to the assets in the Snowflake data warehouse.
Metadata management in Snowflake makes it easy to search, filter, and find data assets by various criteria. Metadata gives you complete visibility into the lifecycle of a data asset. Snowflake stores all the metadata in a centralized component called Cloud Services.
Snowflake automatically creates metadata for data residing both externally (S3, Azure, GCP) and internally (within Snowflake), stores it as a key-value pair (dictionary), and makes it available via the Information Schema.
Users need not be much concerned regarding query performance. It is handled automatically via a dynamic query optimization engine in the cloud services layer. It can model, load, and query the data.
The cloud services layer does all the query planning and query optimization based on data profiles that are collected automatically as the data is loaded. It automatically collects and maintains the required statistics to determine how to distribute the data and queries most effectively across the available compute nodes.
Snowflake’s query caching retains the outcomes of all queries run during the previous 24 hours. The query results returned to one user are accessible to any other user on the system who conducts the same query. It helps to save time by drastically reducing retrieval time when data is pulled from cache memory. The cost is also saved by not spinning up the compute clusters.
Access to Snowflake depends on Access Control privileges which determine who can access and operate on Snowflake. According to the Snowflake model, users or other roles with rights allocated to them can gain access to secure items. Every secure object also has an owner who can provide access to other roles. Unlike user-based access control models, which provide rights and privileges to individual users or groups of users, this model does not do it. The Snowflake approach is intended to offer a sizable level of flexibility and control. It enables Snowflake to provide row-level security and protect PII through dynamic data masking.