data-anaxi/anaxi/processes.py

58 lines
1.6 KiB
Python
Raw Normal View History

2024-08-13 15:02:03 +02:00
import datetime
import json
2024-08-09 14:45:10 +02:00
from psycopg2.sql import SQL
2024-08-13 15:02:03 +02:00
from anaxi.config import (
get_cosmos_database_config_from_file,
get_postgres_database_config_from_file,
get_stream_config_from_file,
)
from anaxi.constants import (
ASSUMED_PREHISTORICAL_DATETIME,
DESTINATION_COLUMN_NAME,
PATHS,
)
from anaxi.cosmos_tools import create_cosmos_client_from_config, get_container_client
from anaxi.logging import get_anaxi_logger
2024-08-13 15:02:03 +02:00
from anaxi.postgres_tools import create_postgres_connection_from_config, simply_query
2024-08-13 16:51:27 +02:00
from anaxi.sync import SyncJob
2024-08-08 18:34:27 +02:00
logger = get_anaxi_logger(__name__)
2024-08-08 18:34:27 +02:00
def run_cosmos_db_healthcheck_process(cosmos_db_id: str) -> None:
2024-08-13 15:02:03 +02:00
relevant_cosmos_db_config = get_cosmos_database_config_from_file(cosmos_db_id)
logger.info("Creating client...")
cosmos_client = create_cosmos_client_from_config(relevant_cosmos_db_config)
logger.info("Client created.")
2024-08-09 14:45:10 +02:00
logger.info("Sending a SELECT 1;")
response = cosmos_client.query_databases(query="SELECT 1")
logger.info(f"Response: {response.next()}")
return
2024-08-09 14:45:10 +02:00
def run_postgres_healthcheck_process(postgres_database: str) -> None:
2024-08-13 15:02:03 +02:00
relevant_postgres_config = get_postgres_database_config_from_file(postgres_database)
2024-08-09 14:45:10 +02:00
logger.info("Connecting and sending a SELECT 1...")
query_result = simply_query(config=relevant_postgres_config, query=SQL("SELECT 1;"))
logger.info(f"Response: {query_result}")
return
2024-08-13 15:02:03 +02:00
def run_sync_process(stream_id: str):
2024-08-13 16:51:27 +02:00
logger.info("Preparing sync job...")
sync_job = SyncJob(stream_id=stream_id)
logger.info("Sync job ready.")
logger.info(f"Checkpoint is at: {sync_job.current_checkpoint}")
sync_job.run_sync()