Snowflake
Snowflake es una plataforma de almacenamiento y análisis de datos en la nube. En Gredit, esta integración permite conectarse directamente a una base de datos Snowflake para consultar información mediante ODBC.
Para qué se usa
Configurar una conexión a Snowflake para que los guiones puedan ejecutar consultas SQL y extraer información desde una base de datos en la nube.
Configuración
Datos necesarios
| Dato | Dónde obtenerlo |
|---|---|
Server | Desde la url. Ejemplo: https://app.snowflake.com/east-us-2.azure/mpa37119/#/homepage, el valor es mpa37119 |
UID | Usuario técnico o personal habilitado |
PWD | Credencial del usuario en Snowflake |
Database | Catálogo de bases en Snowflake |
Schema | Catálogo de bases en Snowflake |
Warehouse | Projects - SQL Query |
Role | Projects - SQL Query |
Obtener database y schema:

Obtener role y warehouse:
Haz click en Projects → + Add new → SQL File. Colócale el nombre que quieras y ejecutalo con este contenido:
SELECT
CURRENT_ROLE(),
CURRENT_WAREHOUSE();

Alta de la base de datos en Gredit
- Ir a la sección de Bases de datos y crear una nueva configuración.
- Completar los datos obtenidos.
- En Controlador, usar
SnowflakeDSIIDriver. - El valor de Nombre será el identificador para inyectar la conexión en los guiones.

Uso en guiones
Ruby
db = ODBC.connect('snowflake_test')
sql = <<~SQL
SELECT * FROM SNOWFLAKE_SAMPLE_DATA.TPCH_SF1.CUSTOMER LIMIT 5
SQL
stmt = db.run(sql)
columns = stmt.columns.map { |c| c.first }
rows = []
while (row = stmt.fetch)
row_hash = columns.zip(row.to_a).to_h
rows << row_hash
end
puts rows.inspect
stmt.drop
db.disconnect
Python
import pyodbc
cnxn = gredit.connect('snowflake_test')
sql = """
SELECT *
FROM SNOWFLAKE_SAMPLE_DATA.TPCH_SF1.CUSTOMER
LIMIT 5
"""
cursor = cnxn.cursor()
cursor.execute(sql)
columns = [col[0] for col in cursor.description]
rows = [dict(zip(columns, row)) for row in cursor.fetchall()]
print(rows)
cursor.close()
cnxn.close()
Relación con otros módulos
- Cuentas: La conexión de Snowflake pertenece a una cuenta.
- Guiones: Puede asociarse a uno o varios guiones de forma opcional.
- Permisos: Se controla por roles y permisos asignados.