V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tctc4869
V2EX  ›  程序员

有哪些数据可视化服务工具?能对远程服务器上的数据库内的数据以网页形式进行可视化展现?

  •  
  •   tctc4869 · 2020-07-22 16:16:48 +08:00 · 2852 次点击
    这是一个创建于 1366 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有哪些可视化 Web 服务,可以部署在数据库所在服务器上,客户端访问可视化服务的网站查看数据库数据的可视化展现的内容。客户端用户可以直接在网页中进行配置 sql 语句,可以在不用写前端代码,就能对查询结果集制定不同的数据展现方式。

    例如 给定一个 sql 语句,可视化服务将 sql 语句进行包装后,扔给数据库进行查询,查询结果集为单行单列的 json 字符串结果集,将结果集进行可视化展示,展示方式包含列表和图表。

    如果是列表展示,则能定义外观,包括行外观,能展示的列的数量,表格结构布局等,通过设置交互 ui (例如按钮)为 select 语句配置 limit 语句和 order by 语句增加分页和指定列排序的功能。

    也可以以表格模式访问数据表,对数据表选定行进行增删改等。

    针对 postgresql

    第 1 条附言  ·  2020-07-22 18:29:57 +08:00
    关于列表模式,支持在该模式下创建一个基于给定 select 语句的查询页面实例?在此之内支持分页,支持配置交互 UI 实现追加 sql 语句?

    比如用户给定一个 select id,name,age from table where type=1 的查询语句。点击某个按钮,弹出一个查询展示的数据列表页面,点击查询按钮,会展示基于 select id,name,age from table where type=1 的查询结果。并且该类页面还支持数据分页。支持配置交互 UI 追加 sql 语句。(比如配置一个选框,被选中后,查询 select 语句会变成 select id,name,age from table where type=1 and age>18,未选择会变回原样)

    我把这个叫查询页面实例,可以把这个查询页面实例保存。下次打开网站再次使用的时候,就不用每次都配置 sql 语句了,而且可以给不知道 sql 语句知识的用户查询数据了。
    第 2 条附言  ·  2020-07-22 20:05:55 +08:00
    基于 sql 数据库的数据可视化工具服务,我觉得想还得有以下操作支持

    可以让懂 sql 数据库的人设计一套数据可视化方案,并且封装进行保存,这样就能重复使用,还能能让不懂 sql 数据库知识的人查询数据了。
    29 条回复    2020-07-23 18:32:54 +08:00
    lower
        1
    lower  
       2020-07-22 16:22:14 +08:00
    你说的好像是 phpMyAdmin ?
    mnssbe
        2
    mnssbe  
       2020-07-22 16:23:36 +08:00
    superset
    tctc4869
        3
    tctc4869  
    OP
       2020-07-22 16:25:52 +08:00
    @lower 这是面向 Mysql,有针对 postgresql 的么?
    fanzheng
        4
    fanzheng  
       2020-07-22 16:27:38 +08:00
    metabase
    superset
    redash

    metabase 有用过,满足你的要求。
    MoYi123
        5
    MoYi123  
       2020-07-22 16:31:16 +08:00
    https://github.com/parse-community/parse-server 里面的 dashboard
    但是必须建一些它必须的表。
    szdubinbin
        6
    szdubinbin  
       2020-07-22 16:34:20 +08:00
    会 sql 事情就方便太多了,metabase,superset 就很好满足你的要求,superset 可以用的图表库花样多一点。
    tctc4869
        7
    tctc4869  
    OP
       2020-07-22 16:48:44 +08:00
    @fanzheng
    @mnssbe
    @szdubinbin

    这些支持表格展示么?比如给定一个查询语句,比如给出 select id,name,age from table where type=1;以表格形式展现该语句查询的结果集。

    可以根据以该 select 语句为根基,通过设置交互 ui 为其进行 where 条件配置,分页配置,排序配置。

    比如设置一个 where 条件配置,and age >18,设置一个选框,该选框选中后,查询语句就会变成 select id,name,age from table where type=1 and age>18,取消选中后会变回原样。

    比如设置指定列排序的操作交互 ui,设置一个下拉框,下拉选项里有名字( name ),年龄( age ),设置在 ui 操作上进行 order by 的列 配置

    还有分页继承功能,比如下一页,上一页,跳转目标页功能
    fanzheng
        8
    fanzheng  
       2020-07-22 17:23:59 +08:00
    @tctc4869 都是免费开源的,可以自己去试一下的。superset 和 redash 是 python 的,部署麻烦一点,metabase 有一个 jar 文件,直接运行`java -jar metabase.jar` 就可以。
    lower
        9
    lower  
       2020-07-22 17:26:50 +08:00
    没注意看最后一句话,postgresql 的,新版的(>=10 )客户端不就是 web 版的嘛??不过我觉得很难用
    chucongqing
        10
    chucongqing  
       2020-07-22 17:34:14 +08:00
    grafana
    tctc4869
        11
    tctc4869  
    OP
       2020-07-22 18:25:30 +08:00
    @fanzheng 不是,我问题的是关于他们的可视化功能,它们的数据可视化功能支不支持列表模式展示,不会仅仅只是把一个 select 语句的结果集转成图表显示在页面上吧?


    比如用户给定一个 select id,name,age from table where type=1 的查询语句。点击某个按钮,弹出一个查询结果集展示的数据列表页面,展示基于 select id,name,age from table where type=1 以及该语句扩展的查询。并且该类页面还支持数据分页。支持配置交互 UI 追加 sql 语句。(比如配置一个选框,被选中后,sql 语句会变成 select id,name,age from table where type=1 and age>18,未选择会变回原样)

    我把这个叫查询页面实例,可以把这个查询页面实例保存。下次打开网站再次使用的时候,就不用每次都配置 sql 语句了,就可以使不知道 sql 语句知识的用户查询数据了。
    graetdk
        12
    graetdk  
       2020-07-22 18:37:44 +08:00
    推荐 Superset,参考: https://mianbaoduo.com/o/bread/YpmVm54=
    tctc4869
        13
    tctc4869  
    OP
       2020-07-22 18:40:02 +08:00
    @graetdk 支持列表模式浏览么,列表模式浏览,如果用 html 前端的话来说,就是使用 table 标签或类似的 ui 组件去展示数据?而不是图表?
    graetdk
        14
    graetdk  
       2020-07-22 18:48:48 +08:00
    @tctc4869 支持列表,但是不方便直接修改,如果只是展示的话没问题,图表类型中就有一类是列表
    tctc4869
        15
    tctc4869  
    OP
       2020-07-22 19:17:54 +08:00
    @graetdk 关于列表的话,只考虑查询吧
    关于查询,是否支持分页,如果不支持分页的话,查询数据量太大可不好啊,比如 给定 select id,name,age from table where type=1,在分页模式下,页数为 20,执行查询时的 sql 语句会追加变成 select id,name,age from table where type=1 limit 20 offset 1

    支持配置交互 ui 来追加 sql 语句么? 配置交互 ui 来追加 sql 语句,通过 ui 事件给执行时的 select 追加 sql 语句,以上面给定的 select 语句为例,比如配置一个选框,它的追加内容是“and age >18”,选框选中事件,点击查询会把执行的 select id,name,age from table where type=1 追加成 select id,name,age from table where type=1 and age >18 。

    这些以上设想的功能配置可不可以保存封装为一个列表查询实例,以后每次写同样的查询都不用再次手打,在网页界面上“列表查询实例”列表里显示保存的列表查询实例,这样的话,可以不会 sql 的用户也可以通过点击“列表查询实例”的项来查询数据了。
    hoyixi
        16
    hoyixi  
       2020-07-22 19:33:28 +08:00
    postgresql 不是有个 pgAdmin 吗
    不过如果是业务的真实环境,公网暴露数据库服务器,并且允许远程登陆,是不太好的做法。
    graetdk
        17
    graetdk  
       2020-07-22 19:39:41 +08:00
    @tctc4869 你问住我了。。。你可以研究研究,反正是开源的
    tuchg
        18
    tuchg  
       2020-07-22 19:41:33 +08:00 via Android
    楼主可以看看 BI 工具,基本满足需求,我最近用了几天
    tuchg
        19
    tuchg  
       2020-07-22 19:42:30 +08:00 via Android
    @tuchg 楼上说的应该都是数据库管理不是可视化,可视化看看 BI 很好用
    lekai63
        20
    lekai63  
       2020-07-22 19:46:12 +08:00 via iPhone
    需求跟你有点像,区别是我的插入和更新逻辑稍微复杂些。
    最后考虑用 go-admin 撸一个。
    renmu123
        21
    renmu123  
       2020-07-22 19:57:47 +08:00 via Android
    4 楼把主流的开源工具都说完了,就是对 MongoDB 支持都不太好
    tctc4869
        22
    tctc4869  
    OP
       2020-07-22 20:02:45 +08:00
    @hoyixi
    pgAdmin 不行,这个是 dbms,而且它是面向开发者的,它不适合,至少也能让不懂 sql 数据库知识的人轻松地使用数据查询。

    可以让懂 sql 数据库的人设计封装一套数据可视化方案并封装进行重复使用,这样就能让不懂 sql 数据库知识的人查询数据了。
    ychost
        23
    ychost  
       2020-07-22 20:33:32 +08:00
    dms.aliyun.com 免费的,用过最爽的,没有之一
    wittyfans
        24
    wittyfans  
       2020-07-22 20:34:15 +08:00 via iPhone
    powerbi,superset,dash+plotly,看你的需求
    20150517
        25
    20150517  
       2020-07-23 00:44:26 +08:00
    搞什么这么复杂,grafana 不香吗?简单又简单,直接连接数据库,带一句 sql 就行了
    daimiaopeng
        26
    daimiaopeng  
       2020-07-23 08:27:54 +08:00
    tctc4869
        27
    tctc4869  
    OP
       2020-07-23 08:46:03 +08:00
    @20150517
    @chucongqing

    关于 grafana,我有问题,我下了 grafana windows 版本,但是目前启动点击 grafana-server.exe 过会就闪退了。
    而用命令行执行 grafana-server.exe ,得到 Grafana-server Init Failed: Could not find config defaults, make sure homepath command line parameter is set or working directory is homepath

    执行命令:grafana-cli admin reset-admin-password --homepath "/usr/share/grafana" newpassword

    得到 Incorrect Usage: flag provided but not defined: -homepath

    [31mError [0m: [31m✗ [0m flag provided but not defined: -homepath

    这个怎么解决啊,初次使用 grafana 。
    mnssbe
        28
    mnssbe  
       2020-07-23 13:40:43 +08:00
    @renmu123 presto 能连一堆数据库
    20150517
        29
    20150517  
       2020-07-23 18:32:54 +08:00 via Android
    @tctc4869 我在 docker 里运行的,没有在 windows 下跑过
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2484 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 16:09 · PVG 00:09 · LAX 09:09 · JFK 12:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.