File size: 1,168 Bytes
05e3517
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
def sample_data_retrieval_agent(state):
    """Retrieves sample data (3 rows) from each relevant table."""
    relevant_tables = state.get("relevant_tables", [])
    client = state["client"]
    
    if not relevant_tables:
        return {"sample_data": {}}
    
    if client is None:
        return {"sample_data": {"error": "Failed to connect to BigQuery."}}
    
    sample_data = {}
    
    for table in relevant_tables:
        try:
            # Clean table name if needed
            clean_table = table.replace("`", "").strip()
            
            # Query to get 3 sample rows
            query = f"""
            SELECT * FROM `{clean_table}` 
            LIMIT 3
            """
            
            query_job = client.query(query)
            results = query_job.result()
            
            # Convert results to a list of dictionaries
            rows = []
            for row in results:
                rows.append(dict(row.items()))
            
            sample_data[clean_table] = rows
            
        except Exception as e:
            sample_data[clean_table] = {"error": str(e)}
    
    return {"sample_data": sample_data}