"""Snowflake model.""" from src.connectors.snowflake import get_snowflake_connection from src.constants.sql import INSERT_QUERY_TEMPLATE def bulk_insert(table_name, columns, data): """ Perform bulk insert into Snowflake using execute_query. Args: table_name (str): The name of the target table. columns (list): The list of column names. data (list): The list of records to insert. """ placeholders = ', '.join([f'%({col})s' for col in columns]) column_names = ', '.join(columns) query = INSERT_QUERY_TEMPLATE.format( table_name=table_name, column_names=column_names, placeholders=placeholders ) conn = None try: conn = get_snowflake_connection() cur = conn.cursor() cur.executemany(query, data) all_rows = cur.fetchall() return all_rows except Exception as e: raise RuntimeError(f'Failed to execute bulk insert: {e}') finally: if conn: conn.close()