import argparse import os from datetime import date from snowflake_connector.etl_connector import SnowflakeSQLExecutor sf_config = { 'role': os.environ.get('SNOWFLAKE_ROLE'), 'warehouse': os.environ.get('SNOWFLAKE_WAREHOUSE'), 'db': os.environ.get('SNOWFLAKE_DATABASE'), 'schema': os.environ.get('SNOWFLAKE_SCHEMA'), 'user': os.environ.get('SNOWFLAKE_USER'), 'password': os.environ.get('SNOWFLAKE_PASSWORD'), 'account': os.environ.get('SNOWFLAKE_ACCOUNT') } def main(): """Main.""" parser = argparse.ArgumentParser( description='fact_analytics sanity check') parser.add_argument( '-d', '--snapshot-date', help=( 'All rows will be tagged by this date on ' 'insertion to history table')) args = parser.parse_args() snapshot_date = args.snapshot_date or date.today().strftime('%Y-%m-%d') print('Snapshoting tracklists on: %s' % snapshot_date) with SnowflakeSQLExecutor(sf_config) as executor: executor.execute(""" INSERT INTO ORCHTBLSPOTIFYPLAYLISTTRACKLISTHISTORY ( SELECT ADDED, EARLIESTADDED, PLAYLISTID, PLAYLISTINDEX, TIMESTAMP, TRACKID, %(snapshot_date)s FROM TBLSPOTIFYPLAYLISTTRACKLIST2 ORDER BY PLAYLISTID, PLAYLISTINDEX ); """, { 'snapshot_date': snapshot_date}) if __name__ == '__main__': main()