🐦⬛ ailab100.pdbc.nosql
alcedo_pdbc.nosql
@File :init.py @Time :2025-7-16 14:18 @Author:AI Lab Morgan
Classes
alcedo_pdbc.nosql.DynamoDB
DynamoDB 创建实例从 DynamoDB 数据库中读写以及下载数据
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
config |
dict
|
Automatically loaded from the config file |
required |
Functions
alcedo_pdbc.nosql.DynamoDB.read_as_dataframe(table, keys=None, attributes=None, dtype=None, return_type='pandas')
method descriptor
DynamoDB.read_as_dataframe(self, str table: str, keys=None, attributes=None, dtype=None, return_type='pandas')
Takes table name, keys as arguments and return the dataframe
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
table |
str
|
table name |
required |
keys |
list
|
filter query. Defaults to None. |
None
|
attributes |
list
|
fields want to pull from dynamodb. Defaults to None. |
None
|
dtype |
dict
|
parse the return field data type. Defaults to None. |
None
|
return_type |
str
|
which dataframe you want to return (pandas, polars, dask etc). Defaults to 'pandas'. |
'pandas'
|
Returns:
| Name | Type | Description |
|---|---|---|
DataFrame |
``Pandas``、``Polars`` or ``Dask``
|
根据 |
alcedo_pdbc.nosql.DynamoDB.write_dataframe(df, table)
method descriptor
DynamoDB.write_dataframe(self, df, str table: str)
Takes DataFrame, table name as arguments and write the dataframe to DynamoDB.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
df |
DataFrame
|
Dataframe which need to be inserted to dynamodb |
required |
table |
str
|
table name |
required |
alcedo_pdbc.nosql.ElasticSearch
ElasticSearch 类创建实例用于 ElasticSearch 进行数据读写,ElasticSearch支持 “用户名+密码” 或 API keys 的进行访问。
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
config |
dict
|
连接ElasticSearch所需的地址、“用户名+密码” 或 API keys |
required |
Examples:
>>> from alcedo_pdbc.nosql import ElasticSearch
>>> es = ElasticSearch(config = {'HOST':"http://192.168.179.1:9200",'USERNAME':"elastic",'PASSWORD':"root",'API_KEY':''})
Functions
alcedo_pdbc.nosql.ElasticSearch.download_as_file(filename, index, query)
method descriptor
ElasticSearch.download_as_file(self, str filename: str, str index: str, str query: str)
download_as_file()方法用于将从ElasticSearch 查询索引,将符合条件的文档输出为指定的文件格式
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
filename |
str
|
导出文件名 |
required |
index |
str
|
es索引 |
required |
query |
dict
|
es搜索条件 |
required |
Returns:
| Name | Type | Description |
|---|---|---|
file |
``CSV``、``Excel``、 ``JSON``、``HTML``、 ``HDF5``、 ``Feather``、 ``Parquet`` 、``Apache Avro``
|
根据参数 |
Examples:
alcedo_pdbc.nosql.ElasticSearch.read_as_dataframe(index, query, return_type='pandas')
method descriptor
ElasticSearch.read_as_dataframe(self, str index: str, str query: str, return_type='pandas')
read_as_dataframe()方法用于根据 query 特定的条件搜索索引 (index) 中的文档,将匹配的结果返回至指定类型的DataFrame
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
index |
str
|
es索引 |
required |
query |
dict
|
es搜索条件 |
required |
Returns:
| Name | Type | Description |
|---|---|---|
DataFrame |
``Pandas``、``Polars`` or ``Dask``
|
根据 |
Examples:
alcedo_pdbc.nosql.ElasticSearch.write_dataframe(df, index)
method descriptor
ElasticSearch.write_dataframe(self, df, str index: str)
write_dataframe()方法将 DataFrame 作为文档添加到 ElasticSearch 的索引
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
df |
DataFrame
|
需要写入ES的 |
required |
index |
str
|
ES索引 |
required |
alcedo_pdbc.nosql.MongoDB
MongoDB 类创建实例用于 MongoDB 数据库的读写数据
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
config |
dict
|
连接 |
None
|
Examples:
>>> from alcedo_pdbc.nosql import MongoDB
>>> mdb = MongoDB(config={ 'USERNAME':'root', 'PASSWORD':'root','HOST':'127.0.0.1','PORT':'27017' })
Notes
需要安装pymongo库,可通过 pip install pymongo 安装
Functions
alcedo_pdbc.nosql.MongoDB.database(database)
method descriptor
MongoDB.database(self, database)
database()方法用于查询 MongoDB 的 Database 实例, 继承 pymondo 的数据库实例, 可使用其 API 进行操作.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
database |
str
|
数据库名 |
required |
Returns:
| Name | Type | Description |
|---|---|---|
database |
``database``
|
继承 |
Examples:
>>> books_db = mdb.database(database='booksDB')
>>> collection = books_db.get_collection(name='booksDB')
>>> print(collection)
>>> #等同于
>>> collection1=mdb.get_collection(database='booksDB',collection='booksDB')
>>> print(books_db.list_collection_names())
>>> #等同于
>>> print(mdb.list_collection_names(database='booksDB'))
alcedo_pdbc.nosql.MongoDB.download_as_file(filename, database, collection, query=None)
method descriptor
MongoDB.download_as_file(self, str filename: str, str database: str, str collection: str, dict query: dict = None)
download_as_file()将从MongoDB数据库查询的结果输出为文件格式
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
filename |
str
|
导出文件名 |
required |
database |
str
|
数据库名 |
required |
collection |
str
|
集合名称 |
required |
query |
dict
|
过滤条件,默认为空 |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
file |
``CSV``、``Excel``、 ``JSON``、``HTML``、 ``HDF5``、 ``Feather``、 ``Parquet`` 、``Apache Avro``
|
根据参数 |
Examples:
>>> from alcedo_pdbc.sql import MySQL
>>> db_mysql = MySQL(config)
>>> db_mysql.download_as_file(filename="examples.json",
table_name="public_rent_price_forecast_data",
params={"houseFloor":"低","totalFloor":2})
Notes
V1.0版本支持的文件格式包括csv、json、xlsx、parquet、feather, 后续会增加avro
alcedo_pdbc.nosql.MongoDB.get_collection(database, collection)
method descriptor
MongoDB.get_collection(self, database, collection)
get_collection()用于返回 MongoDB 的 Database 实例的集合
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
database |
str
|
数据库名称 |
required |
collection |
str
|
集合名称 |
required |
Returns:
| Name | Type | Description |
|---|---|---|
collection |
``collection``
|
名称为 |
Examples:
alcedo_pdbc.nosql.MongoDB.list_collection_names(database)
method descriptor
MongoDB.list_collection_names(self, database)
list_collection_names() 方法用于返回 MongoDB 的 Database 实例的所有集合名称
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
database |
str
|
数据库名称 |
required |
Returns:
| Name | Type | Description |
|---|---|---|
collection名称列表 |
list
|
名称为 |
Examples:
alcedo_pdbc.nosql.MongoDB.read_as_dataframe(database, collection, query=None, return_type='pandas')
method descriptor
MongoDB.read_as_dataframe(self, str database: str, str collection: str, dict query: dict = None, return_type='pandas')
read_as_dataframe()方法用于查询MongoDB 的database数据库中的集合数据返回至指定的DataFrame
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
database |
str
|
数据库名称 |
required |
collection |
str
|
集合名称 |
required |
query |
dict
|
过滤条件,默认为空 |
None
|
return_type |
str
|
返回 |
'pandas'
|
Returns:
| Name | Type | Description |
|---|---|---|
DataFrame |
Pandas、Polars or Dask
|
根据 |
Examples:
alcedo_pdbc.nosql.MongoDB.write_dataframe(df, database, collection)
method descriptor
MongoDB.write_dataframe(self, df, str database: str, str collection: str)
write_dataframe()方法用于通过数据库名称、集合名称作为参数,并将DataFrame 写入MongoDB。
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
df |
DataFrame
|
根据Dataframe的类型将输入写入 mongodb |
required |
database |
str
|
数据库名 |
required |
collection |
str
|
集合名称 |
required |
alcedo_pdbc.nosql.Redis
Redis类用于创建实例从 Redis数据库中读写数据
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
config |
dict
|
连接 redis 所需的HOST、PORT 和 PASSWORD |
None
|
Examples:
>>> from alcedo_pdbc.nosql import Redis
>>> redis_db = Redis(config={ 'PASSWORD':'root','HOST':'127.0.0.1','PORT':'6379' })
Functions
alcedo_pdbc.nosql.Redis.read_redis(key=None, keys=None, list=None, set=None, hset=None, return_type=None)
method descriptor
Redis.read_redis(self, str key: Optional[str] = None, list keys: Optional[List[str]] = None, str list: Optional[str] = None, str set: Optional[str] = None, str hset: Optional[str] = None, str return_type: str = None) -> Union[pd.DataFrame, List[str], Dict[str, str]]
read_redis()方法用于从 Redis 数据源读取数据并返回至指定的DataFrame
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
key |
Optional[str]
|
Redis中的单个key。 |
None
|
keys |
Optional[List[str]]
|
Redis中的多个key列表。 |
None
|
list |
Optional[str])
|
Redis中的列表 |
None
|
set |
Optional[str]
|
Optional[str] : Redis中的集合 |
None
|
hset |
Optional[str]
|
Redis中的hash set名称。 |
None
|
return_type |
str
|
返回的数据类型,默认为 |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
Union |
`pd.DataFrame`, `List[str]`, `Dict[str, str]`
|
根据数据源和参数返回相应的数据。 |
Raises:
| Type | Description |
|---|---|
ValueError
|
如果同时提供了多个参数(key, keys,list、set、 hset)。 |
Examples:
>>> redis_key = redis_db.read_redis(key='TEST')
>>> print(redis_key)
>>> redis_keys = redis_db.read_redis(keys=['TEST','dataname'],return_type='pandas')
>>> print(redis_keys)
>>> redis_list = redis_db.read_redis(list='LIST',return_type='pandas')
>>> print(redis_list)
>>> redis_sets = redis.read_redis(set='sets', return_type='pandas')
>>> print(redis_sets)
>>> redis_hset = redis.read_redis(hset='hash1',return_type='polars')
>>> print("redis_hset",type(redis_hset))
alcedo_pdbc.nosql.Redis.write_dataframe(df, key, replace=False)
method descriptor
Redis.write_dataframe(self, df, str key: str, replace: bool = False)
write_dataframe() 方法用于将 DataFrame 的数据进行序列化并存入 Redis 的键值(字符串)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
df |
object
|
pandas的dataframe |
required |
key |
str
|
键值,要求唯一 |
required |
replace |
bool
|
如果键值存在是否重新写入 |
False
|
Examples:
MongoDB Redis ElasticSearch
DynamoDB