Snowflake for data warehousing

Our top pick for data warehousingOfficialSnowflake

Snowflake is our top pick for data warehousing, and it earns first place by covering the full span of what an agent needs against a warehouse: governed SQL against the account, natural-language querying through a semantic model, and search over unstructured content in the same place. For a team whose analytical data already lives in Snowflake, the managed server does the whole job.

It leads BigQuery, ClickHouse, and MotherDuck here because the work is keeping the agent inside one governed warehouse and giving it both structured and unstructured paths. The rank holds only when Snowflake is the warehouse you run.

How Snowflake fits

The tools that do the work span both query styles. CORTEX_ANALYST_MESSAGE answers natural-language questions by generating governed SQL against a Cortex Analyst semantic model or view, so the agent can ask in plain language and still respect the model's definitions. SYSTEM_EXECUTE_SQL runs a statement directly and can be restricted to read-only, governed by the caller's role and policies, which is the safe path for letting an agent explore at scale. CORTEX_SEARCH_SERVICE_QUERY searches documents and text through hybrid vector and keyword retrieval, useful when the warehouse holds unstructured content alongside tables. CORTEX_AGENT_RUN orchestrates multi-step reasoning across those tools, and GENERIC wraps a stored procedure or UDF so the agent can call custom logic by name.

The governed-SQL angle is the honest strength and the honest limit: scoping comes from the caller's role and policies, so the setup is only as safe as those grants. Among siblings, BigQuery is the serverless query service for teams on Google Cloud, ClickHouse is the columnar engine for fast analytical aggregation, and MotherDuck brings a DuckDB-based serverless path. Snowflake wins when your warehouse is Snowflake and you want one server to handle schema-aware SQL, semantic-model querying, and document search together.

Tools you would use

ToolWhat it does
CORTEX_ANALYST_MESSAGEAnswers natural-language questions over structured data by generating governed SQL against a Cortex Analyst semantic model or view.
CORTEX_SEARCH_SERVICE_QUERYSearches unstructured content (documents, text) through a Cortex Search service using hybrid vector and keyword retrieval, ideal for RAG.
SYSTEM_EXECUTE_SQLExecutes a SQL statement directly against the account; can be restricted to read-only and is governed by the caller's role and policies.
CORTEX_AGENT_RUNInvokes a Cortex Agent to orchestrate multi-step reasoning across Cortex Analyst, Cortex Search, and other configured tools.
GENERICWraps a user-defined function or stored procedure as an MCP tool so agents can call custom Snowflake logic by name.
Full Snowflake setup and config →

FAQ

Can I keep an agent from writing to the warehouse?
Yes. SYSTEM_EXECUTE_SQL can be restricted to read-only, and every call is governed by the caller's role and policies. The scoping is only as tight as those grants, so set the role deliberately before pointing an agent at the account.
What does Snowflake offer beyond running SQL?
CORTEX_ANALYST_MESSAGE answers natural-language questions by generating governed SQL against a semantic model, CORTEX_SEARCH_SERVICE_QUERY searches unstructured documents with hybrid retrieval, and CORTEX_AGENT_RUN orchestrates multi-step reasoning across those tools.