Untitled

 avatar
unknown
plain_text
14 days ago
1.6 kB
3
Indexable
import os
import logging
import awswrangler as wr
from src.source_rules import apply_src_rules


logger = logging.getLogger()
logger.setLevel(logging.INFO)


def lambda_handler(event: dict, _context: dict) -> dict:
    try:
        logger.info(event)

        reservoir_bucket = os.environ["reservoir_bucket"]
        citi_db_name = os.environ["citi_db_name"]
        table_name = "hk_fa_citi_trxn"

        logger.info(
            "Processing date: %s", f"{event['yyyy']}-{event['mm']}-{event['dd']}"
        )

        src_df = wr.athena.read_sql_query(
            sql=f"""
            select fund_code, accounting_transaction_id, transaction_type, security_internal_code, entry_date, trade_date, settlement_date, local_currency, units__nominal_value, book_cost_local_ccy, market_price_local_ccy, gross_cost_local_ccy, broker_commission_local_ccy, tax_amount_local_ccy, total_fee_local_ccy, transaction_accrued_interest_local_ccy, transaction_accrued_interest_fund_ccy, net_transaction_amt_local_ccy, net_transaction_amt_fund_ccy, realized_total_gl_local_ccy, realized_total_gl_fund_ccy, realized_market_gl_fund_ccy, trade_status
            from {table_name} as inv_trxn
            """,
            database=citi_db_name,
            ctas_approach=False,
            s3_output=f"s3://{reservoir_bucket}/athena_results/",
        )

        response = apply_src_rules(src_df, event)
        logger.info("apply_src_rules response %s", response)

    except Exception as err:
        logger.exception(err)
        raise err

    return {"status": 200}
Editor is loading...
Leave a Comment