graflo.data_source.sql¶
SQL database data source implementation.
This module provides a data source for SQL databases using SQLAlchemy-style configuration. It supports parameterized queries and pagination.
SQLConfig
dataclass
¶
Bases: BaseDataclass
Configuration for SQL data source.
Uses SQLAlchemy connection string format.
Attributes:
| Name | Type | Description |
|---|---|---|
connection_string |
str
|
SQLAlchemy connection string (e.g., 'postgresql://user:pass@localhost/dbname') |
query |
str
|
SQL query string (supports parameterized queries) |
params |
dict[str, Any]
|
Query parameters as dictionary (for parameterized queries) |
pagination |
bool
|
Whether to use pagination (default: True) |
page_size |
int
|
Number of rows per page (default: 1000) |
Source code in graflo/data_source/sql.py
SQLDataSource
dataclass
¶
Bases: AbstractDataSource
Data source for SQL databases.
This class provides a data source for SQL databases using SQLAlchemy. It supports parameterized queries and pagination. Returns rows as dictionaries with column names as keys.
Attributes:
| Name | Type | Description |
|---|---|---|
config |
SQLConfig
|
SQL configuration |
engine |
Engine | None
|
SQLAlchemy engine (created on first use) |
Source code in graflo/data_source/sql.py
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 | |
__post_init__()
¶
iter_batches(batch_size=1000, limit=None)
¶
Iterate over SQL query results in batches.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
batch_size
|
int
|
Number of items per batch |
1000
|
limit
|
int | None
|
Maximum number of items to retrieve |
None
|
Yields:
| Type | Description |
|---|---|
list[dict]
|
list[dict]: Batches of rows as dictionaries |
Source code in graflo/data_source/sql.py
105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 | |