跳转至

🐦‍⬛ 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``

根据 return_type 参数返回对应的数据帧 Dataframe

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``

根据参数filename文件类型导出文件保存至指定的目录下

Examples:

>>> es.download_as_file(filename="examples.csv",
                   index=index_name,query=query)
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``

根据 return_type 参数返回对应的数据帧 Dataframe

Examples:

>>> index_name = "my_index"
>>> query = {
        "query":{
            "match":{
                "content":"搜索引擎"
            }
        }
    }
>>> df = es.read_as_dataframe(index=index_name,query=query)
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的DataFrame数据

required
index str

ES索引

required
alcedo_pdbc.nosql.MongoDB

MongoDB 类创建实例用于 MongoDB 数据库的读写数据

Parameters:

Name Type Description Default
config dict

连接MongoDB所需的USERNAMEPASSWORDHOSTPORT信息

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()方法用于查询 MongoDBDatabase 实例, 继承 pymondo 的数据库实例, 可使用其 API 进行操作.

Parameters:

Name Type Description Default
database str

数据库名

required

Returns:

Name Type Description
database ``database``

继承 pymongo 的数据库实例

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``

根据参数filename文件类型导出文件保存至指定的目录下

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()用于返回 MongoDBDatabase 实例的集合

Parameters:

Name Type Description Default
database str

数据库名称

required
collection str

集合名称

required

Returns:

Name Type Description
collection ``collection``

名称为collection参数值的集合

Examples:

>>> mdb.list_collection_names(database='booksDB')
>>> #等同于
>>> books_db = mdb.database(database='booksDB')
>>> collection = books_db.get_collection(name='booksDB')
alcedo_pdbc.nosql.MongoDB.list_collection_names(database) method descriptor

MongoDB.list_collection_names(self, database)

list_collection_names() 方法用于返回 MongoDBDatabase 实例的所有集合名称

Parameters:

Name Type Description Default
database str

数据库名称

required

Returns:

Name Type Description
collection名称列表 list

名称为collection参数值的集合

Examples:

>>> mdb.list_collection_names(database='booksDB'))
>>> #等同于
>>> books_db = mdb.database(database='booksDB')
>>> books_db.list_collection_names()
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()方法用于查询MongoDBdatabase数据库中的集合数据返回至指定的DataFrame

Parameters:

Name Type Description Default
database str

数据库名称

required
collection str

集合名称

required
query dict

过滤条件,默认为空

None
return_type str

返回DataFrame的类型,默认为pandas,可选[pandas,polars]

'pandas'

Returns:

Name Type Description
DataFrame Pandas、Polars or Dask

根据 return_type 参数返回对应格式的DataFrame

Examples:

>>> df = md.read_as_dataframe(database="booksDB",collection="booksDB",query={'author':'老杨',"age":50})
>>> print(df)
>>> df1 = mdb.read_as_dataframe(database="booksDB",collection="booksDB",query={"age":{"$gt":15,
"$lt":50}},return_type="polars")
>>> print(df1)
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,返回 pandas.DataFrame

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:

>>> df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
>>> redis_db.write_dataframe(df,'examples-1')

MongoDB Redis ElasticSearch

DynamoDB