将 kedro 与 MongoDB 或其他文档数据库一起使用的最佳实践是什么?例如,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 而没有简单查询字符串的数据库时,数据加载逻辑应该存在于何处?