在项目中,我想很多人都会有各种数据导出,在构建数据仓库 ETL 报表分析系统的过程中,从不同数据源大量的数据同步,关联数据处理,不要太繁琐烦人。
https://github.com/snower/syncany
支持特性:
数据同步完成后,我想 kibana、superset、Grafana 都是很不错易于使用的图表系统了,直接写入 Execl 也可以大幅解放烦琐的数据导出需求。
简单导出规则示例:
{
  "extends": ["json/database.json", "json/log.json"],
  "name": "user_order",
  "input": "&.mysql_order.user_order::order_id",
  "output": "&.exports.用户订单.xlsx#订单列表::订单号",
  "querys": {
    "order_at|datetime": [">=", "<"]
  },
  "schema": {
    "订单号": "$.order_id",
    "用户 ID": "$.uid",
    "用户名": ["$.uid|ObjectId", "&.mongo_user.user::_id", "$.username"],
    "用户昵称": ["$.uid|ObjectId", "&.mongo_user.user::_id", "$.nickname"],
    "订单类型": {
      "name": "case_valuer",
      "key": "order_type",
      "case": {
        "groupbuy": "团购订单"
      },
      "default_case": "普通订单"
    },
    "订单金额(元)": ["@div", "$.total_fee", 100],
    "订单状态": ["$.status", "&.json.status.json::status", "$.verbose_name"],
    "下单时间": "$.order_at|datetime %Y-%m-%d %H:%M:%S"
  }
}
也可看详细 demo 示例: https://github.com/snower/syncany/tree/master/examples/demo