Versión: 1.1.0
Este script permite ejecutar consultas SQL en Snowflake reemplazando tokens de fecha y exportando los resultados a diferentes formatos (CSV, Excel, TXT).
- Python 3.10+
- Una cuenta activa de Snowflake.
- Dependencias de Python (ver sección de instalación).
A continuación se detallan los pasos para configurar el proyecto en diferentes sistemas operativos.
- Python 3.10 o superior instalado.
- Git (opcional, para clonar el repositorio).
-
Clonar el repositorio:
git clone https://github.com/biocatchltd/biocatch_iqe_example_script.git cd biocatch_iqe_example_script -
Crear y activar el entorno virtual:
python3 -m venv venv source venv/bin/activate -
Instalar dependencias:
pip install --upgrade pip pip install -r requirements.txt
-
Configurar variables de entorno (Temporal):
export SNOWFLAKE_USER="tu_usuario" export SNOWFLAKE_PASSWORD="tu_contraseña" # ... y así con el resto
-
Clonar el repositorio:
git clone https://github.com/biocatchltd/biocatch_iqe_example_script.git cd biocatch_iqe_example_script
-
Crear y activar el entorno virtual:
python -m venv venv .\venv\Scripts\Activate.ps1Nota: Si recibes un error de ejecución de scripts, ejecuta
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser. -
Instalar dependencias:
pip install --upgrade pip pip install -r requirements.txt
-
Configurar variables de entorno (Temporal):
$env:SNOWFLAKE_USER="tu_usuario" $env:SNOWFLAKE_PASSWORD="tu_contraseña"
-
Crear y activar el entorno virtual:
python -m venv venv venv\Scripts\activate.bat
-
Configurar variables de entorno (Temporal):
set SNOWFLAKE_USER=tu_usuario set SNOWFLAKE_PASSWORD=tu_contraseña
Independientemente del sistema operativo, puedes usar un archivo .env para no tener que configurar las variables en cada sesión.
-
Copia el archivo de ejemplo:
- macOS / Linux / PowerShell:
cp .env.example .env - Windows (CMD):
copy .env.example .env
- macOS / Linux / PowerShell:
-
Edita el archivo
.envcon tus credenciales:
| Variable | Descripción |
|---|---|
SNOWFLAKE_USER |
Nombre de usuario de Snowflake. |
SNOWFLAKE_PASSWORD |
Contraseña del usuario. |
SNOWFLAKE_TOKEN |
Token de autenticación (OAuth) opcional. |
SNOWFLAKE_ACCOUNT |
Identificador de la cuenta (ej. xy12345.east-us-2.azure). |
SNOWFLAKE_WAREHOUSE |
Nombre del Virtual Warehouse a utilizar. |
SNOWFLAKE_DATABASE |
Base de datos por defecto. |
SNOWFLAKE_SCHEMA |
Esquema por defecto. |
SNOWFLAKE_ROLE |
Rol del usuario para la sesión. |
Ejecuta el script utilizando python main.py seguido de los argumentos necesarios.
| Parámetro | Requerido | Descripción | Valores permitidos | Predeterminado |
|---|---|---|---|---|
--input_file |
Sí | Ruta al archivo .sql que contiene la consulta. |
Ruta de archivo | - |
--date_from |
Sí | Fecha que reemplazará el token {data_from}. |
Texto (ej. YYYY-MM-DD) | - |
--date_end |
Sí | Fecha que reemplazará el token {date_end}. |
Texto (ej. YYYY-MM-DD) | - |
--output_type |
Sí | Formato del archivo de salida. | csv, excel, txt |
- |
--output_file |
No | Nombre base del archivo de salida (sin extensión). | Texto | output |
--token |
No | Token de autenticación (OAuth) para Snowflake. | Texto | - |
1. Exportar a CSV con tokens de fecha:
python main.py --input_file query.sql --date_from 2024-01-01 --date_end 2024-01-31 --output_type csv2. Exportar a Excel con nombre de archivo personalizado:
python main.py --input_file query.sql --date_from 2023-06-01 --date_end 2023-06-30 --output_type excel --output_file reporte_ventas_junio3. Exportar a TXT (Delimitado por tabulaciones):
python main.py --input_file query.sql --date_from 2024-04-01 --date_end 2024-04-15 --output_type txt --output_file extracto_datos4. Conexión usando un Token (OAuth):
python main.py --input_file query.sql --date_from 2024-01-01 --date_end 2024-01-31 --output_type csv --token "mi_token_oauth_aqui"El archivo SQL de entrada puede contener los tokens {data_from} y {date_end}, los cuales serán reemplazados dinámicamente por los valores pasados en los argumentos.
Para ver más ejemplos de consultas complejas (distribución de scores, métricas de reglas, etc.), consulta el archivo query_examples.md.
Ejemplo (query.sql):
SELECT *
FROM SNOWFLAKE_SAMPLE_DATA.TPCH_SF1.ORDERS
WHERE O_ORDERDATE BETWEEN '{data_from}' AND '{date_end}'
LIMIT 100;Carlos Orellana Palma - carlos.orellana@biocatch.com With ❤️ from Mobile Solutions Team @BioCatch 😎