pip install -r requirements.txtCreate .env file:
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=speechanalytics
CLOUD_DB_HOST=your-cloud-host
CLOUD_DB_PORT=3306
CLOUD_DB_USER=your-cloud-user
CLOUD_DB_PASSWORD=your-cloud-password
CLOUD_DB_NAME=speechanalytics# 1. Generate SQL files
python tools/generate_sql_from_csvs.py --path "fending_data" --sample 2000
# 2. Create tables
python database/init_database.py --cloud
# 3. Load all CSV files
python create_tables_from_csvs.py --path "fending_data" --cloud --chunksize 5000# Preview files
python bulk_load_all_script.py --path "fending_data" --dry-run --cloud
# Load all files
python bulk_load_all_script.py --path "fending_data" --cloud
# Load date range
python bulk_load_all_script.py --path "fending_data" --start-month 2024-08 --end-month 2024-12 --cloud# Load all CSVs
python monthly_loader.py --path "fending_data" --cloud
# Load specific month
python monthly_loader.py --path "fending_data" --month 2025-08 --cloudpython tools/generate_sql_from_csvs.py --path "fending_data" --sample 2000 --out "database"Options:
--path PATH- CSV folder (default:fending_data)--sample N- Rows to sample (default:2000)--out PATH- Output folder (default:database)
python database/init_database.py --cloudOptions:
--cloud- Use cloud database
python create_tables_from_csvs.py --path "fending_data" --cloud --chunksize 5000 --sample 1000Options:
--path PATH- CSV folder (default:fending_data)--cloud- Use cloud database--chunksize N- Rows per chunk (default:5000)--sample N- Rows to sample (default:1000)
python monthly_loader.py --path "fending_data" --month 2025-08 --cloud --chunksize 5000 --sample 1000Options:
--path PATH- Base path (default:fending_data)--month YYYY-MM- Month to process--cloud- Use cloud database--chunksize N- Insert chunk size (default:5000)--sample N- Rows to sample (default:1000)
python bulk_load_all_script.py --path "fending_data" --start-month 2024-08 --end-month 2024-12 --cloud --skip-duplicates --dry-runOptions:
--path PATH- Base path (required)--start-month YYYY-MM- Start month--end-month YYYY-MM- End month--cloud- Use cloud database--skip-duplicates- Skip processed files (default: True)--dry-run- Preview only
python etl_monthly_processor.py --file "data/file.csv" --cloud --skip-duplicates
python etl_monthly_processor.py --month 2025-08 --path "fending_data" --cloudOptions:
--file PATH- Process single file--month YYYY-MM- Process month--path PATH- Base path--cloud- Use cloud database--skip-duplicates- Skip processed files (default: True)
python etl_merge_processor.py --month 2025-08 --path "fending_data" --cloudOptions:
--month YYYY-MM- Process month (required)--path PATH- Base path--cloud- Use cloud database
python bulk_historical_loader.py --path "fending_data" --start-month 2024-08 --end-month 2024-12 --cloud --skip-duplicates --dry-runOptions:
--path PATH- Base path (required)--start-month YYYY-MM- Start month--end-month YYYY-MM- End month--cloud- Use cloud database--skip-duplicates- Skip processed files (default: True)--dry-run- Preview only
python test_mysql_connection.py --cloudOptions:
--cloud- Test cloud database
python check_cloud_data.pySHOW TABLES;
SELECT COUNT(*) FROM flags_resumen_total_con_morosidad;
SELECT COUNT(*) FROM flags_resumen_total_con_pagos_atc;
SELECT COUNT(*) FROM flags_resumen_total_con_pagos_galicia;
SELECT COUNT(*) FROM resultados_analisis_completo_metadata_final_nps;
SELECT * FROM upload_reports ORDER BY report_id DESC LIMIT 10;