V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
sujin190
V2EX  ›  分享创造

分享个简单易用数据同步构建数据仓库图表系统的工具吧

  •  
  •   sujin190 ·
    snower · 2018-08-20 21:23:16 +08:00 · 1834 次点击
    这是一个创建于 2069 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在项目中,我想很多人都会有各种数据导出,在构建数据仓库 ETL 报表分析系统的过程中,从不同数据源大量的数据同步,关联数据处理,不要太繁琐烦人。

    https://github.com/snower/syncany

    支持特性:

    1. 使用 json 文件轻松定义导出规则
    2. 支持从 execl、json 文件、csv 文件、mysql、mongodb、postgresql 读入数据
    3. 支持输出到 execl、json 文件、csv 文件、mysql、mongodb、postgresql、elasticsearch
    4. 支持从不同数据源读入关联数据,比如自动读取 mysql 订单 uid 关联 mongodb 用户信息
    5. 支持简单表达式对值进行处理
    6. 支持简单 case 语法翻译枚举类型
    7. 支持删除插入和插入更新删除两中同步类型

    数据同步完成后,我想 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

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   915 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:37 · PVG 04:37 · LAX 13:37 · JFK 16:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.