Snowflake Plugin
Async data warehouse operations with automatic connection management built on snowflake-connector-python.
Installation
pip install snowflake-connector-python
Quick Start
Direct Usage (Scripts)
from daita.plugins import snowflake
# Direct usage in scripts
async with snowflake(
account="xy12345",
warehouse="COMPUTE_WH",
database="ANALYTICS_DB",
user="analyst",
password="secure_password"
) as db:
results = await db.query("SELECT * FROM sales LIMIT 100")
print(results)
Agent Integration (Recommended)
from daita import SubstrateAgent
from daita.plugins import snowflake
# Create plugin
db = snowflake(
account="xy12345",
warehouse="COMPUTE_WH",
database="ANALYTICS_DB",
user="analyst",
password="secure_password"
)
# Create agent
agent = SubstrateAgent(
name="Data Warehouse Analyst",
model="gpt-4o-mini",
prompt="You are a data analyst. Help users query and analyze data warehouse data."
)
# Give agent access to Snowflake tools
agent.add_plugin(db)
await agent.start()
result = await agent.run("What were our top 10 products by revenue last quarter?")
Connection Parameters
snowflake(
account: Optional[str] = None,
warehouse: Optional[str] = None,
database: Optional[str] = None,
schema: str = "PUBLIC",
user: Optional[str] = None,
password: Optional[str] = None,
role: Optional[str] = None,
private_key_path: Optional[str] = None,
private_key_passphrase: Optional[str] = None,
authenticator: Optional[str] = None,
session_parameters: Optional[Dict] = None
)
Parameters
account(str): Snowflake account identifier (e.g., "xy12345" or "xy12345.us-east-1")warehouse(str): Virtual warehouse name for compute resourcesdatabase(str): Database name to connect toschema(str): Schema name (default: "PUBLIC")user(str): Username for authenticationpassword(str): Password for password authenticationrole(str): Role to use after connecting (optional)private_key_path(str): Path to RSA private key file for key-pair authenticationprivate_key_passphrase(str): Passphrase for encrypted private key (optional)authenticator(str): External authenticator (e.g., "externalbrowser", "oauth")session_parameters(dict): Additional session parameters