Created
July 1, 2025 03:34
-
-
Save oNddleo/c153f5c9c784cf9860d38398217f0750 to your computer and use it in GitHub Desktop.
Query Billion
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SELECT symbol, close, date | |
FROM public.historical_data | |
WHERE symbol IN ({placeholders}) | |
AND date BETWEEN %s::date AND %s::date | |
AND close IS NOT NULL | |
ORDER BY symbol, date |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
import asyncio
import asyncpg
from typing import List, Dict, Any, Optional
from collections import defaultdict
import logging
Synchronous optimized version
def get_historical_data_for_symbols(symbols_data: list, start_time: str, end_time: str):
“””
Retrieve historical close prices for a list of tickers within a specified date range.
Optimized for better PostgreSQL performance.
Async version for even better performance
async def get_historical_data_async(symbols_data: list, start_time: str, end_time: str,
connection_string: str):
“””
Async version with connection pooling for maximum performance.
“””
async def fetch_batch_async(pool, tickers: List[str], start_time: str, end_time: str):
“”“Helper function to fetch a batch of tickers asynchronously.”””
Cursor-based pagination version for very large datasets
def get_historical_data_paginated(symbols_data: list, start_time: str, end_time: str,
page_size: int = 10000):
“””
Version with cursor-based pagination for handling very large result sets.
“””