从磁盘上的文件到完整分发API的datapipelines开发框架
项目描述
什么是Maggma
Maggma是一个框架,用于从存储在多种格式(数据库、Azure Blob、磁盘上的文件等)中的数据构建科学数据处理管道,一直到最后是REST API。本README的其余部分包含对maggma
能做什么的简要、高级概述。更多内容请参阅文档。
从PyPI安装
Maggma发布在Python包索引上。从PyPi安装包的首选工具是pip。此工具随所有现代Python版本提供。
打开终端并运行以下命令。
pip install --upgrade maggma
基本概念
maggma
的核心类--Store
和Builder
--提供了模块化数据管道的构建块。数据存储在一个或多个Store
中,并由Builder
进行处理。处理结果保存在另一个Store
中,依此类推
flowchart LR
s1(Store 1) --Builder 1--> s2(Store 2) --Builder 2--> s3(Store 3)
s2 -- Builder 3-->s4(Store 4)
Store
构建可扩展数据管道的主要挑战之一是处理所有不同类型的数据源。Maggma的Store
类提供了一个一致的、统一的接口,用于从任意数据源查询数据。它最初是围绕MongoDB构建的,因此其接口与PyMongo
语法非常相似。然而,Maggma使得可以使用相同的语法查询其他类型的数据库,例如Amazon S3、GridFS或磁盘上的文件等,以及其他许多数据库。Store实现方法以连接connect
、查询query
、查找distinct
值、按字段groupby
、更新文档update
和删除文档remove
。
以下示例演示了使用update
将4个文档(python dicts
)插入到MongoStore
中,然后使用count
、query
和distinct
访问数据。
>>> turtles = [{"name": "Leonardo", "color": "blue", "tool": "sword"},
{"name": "Donatello","color": "purple", "tool": "staff"},
{"name": "Michelangelo", "color": "orange", "tool": "nunchuks"},
{"name":"Raphael", "color": "red", "tool": "sai"}
]
>>> store = MongoStore(database="my_db_name",
collection_name="my_collection_name",
username="my_username",
password="my_password",
host="my_hostname",
port=27017,
key="name",
)
>>> with store:
store.update(turtles)
>>> store.count()
4
>>> store.query_one({})
{'_id': ObjectId('66746d29a78e8431daa3463a'), 'name': 'Leonardo', 'color': 'blue', 'tool': 'sword'}
>>> store.distinct('color')
['purple', 'orange', 'blue', 'red']
Builder
Builder代表一个数据处理步骤,类似于数据仓库模型中的提取-转换-加载(ETL)操作。与Store
提供访问数据的一致接口一样,Builder
类提供了一致的数据转换接口。Builder
转换分为三个阶段:get_items
、process_item
和update_targets
get_items
:从源Store检索项目以便下一阶段进行处理process_item
:操作输入项目并创建一个输出文档,该文档被发送到下一阶段以进行存储。update_target
:将处理后的项目添加到目标Store。
get_items
和update_targets
都可以对数据存储执行IO(输入/输出)。process_item
预期不执行任何IO,以便Maggma可以对其进行并行处理。Builder可以链接到一个数组中,然后保存为JSON文件以在生产系统上运行。
起源和维护者
Maggma由劳伦斯伯克利国家实验室和材料项目软件基金会的材料项目团队开发和维护。
Maggma是用Python编写的,并支持Python 3.9+。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
构建分布
maggma-0.69.4.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 30ef179bab1efad62611effffc039033ef47f951e3ffc9f999e6a721ce0e2fa4 |
|
MD5 | c380d7edc4d6578c4348098c2e8f5709 |
|
BLAKE2b-256 | af5cac1e8ba7975c697a24fbf780ab5ce05623b4ea3c503f50d32cbaae862087 |
maggma-0.69.4-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1a9234fb96d648d5ce3e316ed4d400dbd9033013857e63b05eb23c092cbaa28f |
|
MD5 | 08291713525b65f3597cef243787b3a3 |
|
BLAKE2b-256 | 9da19af89932f177f358bcf4f0252f84038eea60afb37b6670d494e5acfa66e4 |