LlamaIndex Readers Integration: Database
Overview
Database Reader is a tool designed to query and load data from databases efficiently.
Key features
- Accepts connection via
SQLDatabase, SQLAlchemyEngine, full URI, or discrete credentials - Optional
schemaselection (namespace) - Column-level metadata mapping (
metadata_cols) and text exclusion (excluded_text_cols) - Custom
id_generation function (document_id) - Supports streaming (
lazy_load_data) and async (aload_data)
Installation
You can install Database Reader via pip:
pip install llama-index-readers-database
Usage
from llama_index.readers.database import DatabaseReader
# Initialize DatabaseReader with the SQL database connection details
reader = DatabaseReader(
sql_database="<SQLDatabase Object>", # Optional: SQLDatabase object
engine="<SQLAlchemy Engine Object>", # Optional: SQLAlchemy Engine object
uri="<Connection URI>", # Optional: Connection URI
scheme="<Scheme>", # Optional: Scheme
host="<Host>", # Optional: Host
port="<Port>", # Optional: Port
user="<Username>", # Optional: Username
password="<Password>", # Optional: Password
dbname="<Database Name>", # Optional: Database Name
)
# Load data from the database using a query
documents = reader.load_data(
query="<SQL Query>" # SQL query parameter to filter tables and rows
)
# Initialize DatabaseReader with the SQL connection string and custom database schema
from llama_index.readers.database import DatabaseReader
reader = DatabaseReader(
uri="postgresql+psycopg2://user:pass@localhost:5432/mydb",
schema="warehouse", # optional namespace
)
# Streaming variant, excluded id from text_resource
for doc in reader.lazy_load_data(
query="SELECT * FROM warehouse.big_table", excluded_text_cols={"id"}
):
process(doc)
# Async variant, added region to metadata
docs_async = await reader.aload_data(
query="SELECT * FROM warehouse.big_table", metadata_cols=["region"]
)
# Advanced usage with custom named metadata columns, columns excluded from the `Document.text_resource`, and a dynamic `Document.id_` generated from row data and a fstring template
from llama_index.readers.database import DatabaseReader
reader_media = DatabaseReader(
uri="postgresql+psycopg2://user:pass@localhost:5432/mydb",
schema="media", # optional namespace
)
docs = reader_media.load_data(
query="SELECT id, title, body, updated_at FROM media.articles",
metadata_cols=[
("id", "article_id"),
"updated_at",
], # map / include in metadata
excluded_text_cols=["updated_at"], # omit from text
document_id=lambda row: f"media-articles-{row['id']}", # custom document id
)
This loader is designed to be used as a way to load data into LlamaIndex.
Metadata
Release files for llama-index-readers-database 0.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| llama_index_readers_database-0.7.0.tar.gz | 6.7 kB | Without provenance | Details for llama_index_readers_database-0.7.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| llama_index_readers_database-0.7.0-py3-none-any.whl | Python 3 | none | any | Details for llama_index_readers_database-0.7.0-py3-none-any.whl |
Total release size: 13.1 kB
Release files / llama_index_readers_database-0.7.0.tar.gz
| Download URL | llama_index_readers_database-0.7.0.tar.gz |
|---|---|
| Size | 6.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e457f0dd1a3bfaf9ac91123cc6bd60453c601323029fb1961e7e88e2611c9e86
|
|
BLAKE2b-256 checksum How to use checksums |
a049c284aa6d71b02a563aaa6fbfd1caad9e823574cdd35628816262bb237c5c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / llama_index_readers_database-0.7.0-py3-none-any.whl
| Download URL | llama_index_readers_database-0.7.0-py3-none-any.whl |
|---|---|
| Size | 6.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
dcec2293d3aa425d5d4144398169d3b1acf855a5871dbc8cde4310fffb84ab41
|
|
BLAKE2b-256 checksum How to use checksums |
ddb8ea0fd4b6c0f058908874c6d4b15ecf0f0dc722772b6754ded4e106ce3f88
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for llama-index-readers-database 0.7.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.