【发布时间】:2020-03-15 08:19:57
【问题描述】:
在 MongoDB 或其他文档数据库中使用 kedro 的最佳做法是什么?例如,MongoDB 没有类似于 SQL 的查询语言。 Python 中的大多数 Mongo“查询”(使用 PyMongo)看起来像这样:
from pymongo import MongoClient
client = MongoClient(...) // Credentials go here
posts = client.test_database.posts
posts.find_one({"author": "Mike"})
然后你会得到这样的东西:
{u'_id': ObjectId('...'),
u'author': u'Mike',
u'date': datetime.datetime(...),
u'tags': [u'mongodb', u'python', u'pymongo'],
u'text': u'My first blog post!'}
现在我的问题是:逻辑应该去哪里找到这篇文章,然后将它解析成一个数据框?尝试创建 MongoQueryDataSet 类似乎不合适,因为如果您想支持插入、聚合等内容,最终将不得不用笨拙的 yaml 参数包装整个 PyMongo API。
MongoDataSet 类是否应该只返回一个 MongoClient 对象并在 kedro 节点中捕获任何进一步的逻辑?
一般来说,当您使用具有这些功能性(非 SQL)API 而没有简单查询字符串的数据库时,数据加载逻辑应该存在于何处?
【问题讨论】: