数据可视化如果做到以下几点就属于比较好的可视化平台了
1)过程简单、生产效率要高(无论是研发、运营、产品都快可以快速的创建想要的图表)。
2)自定义程度高:展现形式多样可选、交互自定义程度高(各种筛选过滤)。
3)便于分享:数据的分享是数据价值体现的一个环节。
4)数据的评论和备注:备注能够记录异常和原因,评论利于保存讨论和分析过程(一个相对完善的系统而言这个功能方便实际使用)。
5)权限控制:自由总是相对的,相对分享就是控制,张弛有度必是这个系统长存的基石
实现上述的可视化系统并非易事,里面涉及到很多的环节。
但可视化做的比较好的tableau却给我们创建了一个比较好的典范。它在数据的分享、效率方面做得无可挑剔。
实际环境中却不一定能直接使用一些成熟的解决方案,还需要自己搭建。

继续阅读

反向代理

package main

import (
    "net/http"
    "net/http/httputil"
    "net/url"
)

func main() {
    //【[one line code] 一行代码http反向代理】
    //127.0.0.1:8900 转发到 10.0.12.110:6335
    //测试: curl http://127.0.0.1:8900

    u, _ := url.Parse("http://10.0.12.110:6335") //反向代理的目的地址
    http.ListenAndServe(":8900", httputil.NewSingleHostReverseProxy(u))

}

静态服务

package main

import (
    "net/http"
)

func main() {

    //【[one line code] 一行代码静态web服务】
    //测试: curl http://127.0.0.1:8901/a.txt

    // 静态web服务:
    http.ListenAndServe(":8901", http.FileServer(http.Dir("/tmp")))

    //【[one line code] 一行代码静态web服务带路径转发】
    // curl 127.0.0.1:8902/tmpfiles/a.txt
    // url路径/tmpfile 映射到/tmp
    /*
        http.Handle("/tmpfiles/", http.StripPrefix("/tmpfiles/", http.FileServer(http.Dir("/tmp"))))
        http.ListenAndServe(":8902", nil)
    */


}

当前比较好的sql格式化工具

以下在网上搜集了一些比较好的sql格式化工具,各有利弊。但对hive sql 来说目前还没有比较好的工具可以直接拿过来用。
1. ApexSQL Refactor SQL formatter
2. SQL Pretty Printer
         Instant SQL Formatter (在线免费版本 ) http://www.dpriver.com/pp/sqlformat.htm
         SQL Pretty Printer (桌面应用收费版本) http://www.dpriver.com/products/sqlpp/desktop_index.php
3. druid
         https://github.com/alibaba/druid 开源免费

sql格式化之druid

      druid(alibaba)实现了sql语法的分析(和antlr生成的parse非常像),目前已经支持大部分常用的sql语法。查看其代码发现Terence Parr(antlr的作者)说的挺对的,词法和语法分析十分的枯燥,而且容易出现错误。可维护性特别差。
      druid内部实现了一个format方法并支持很多种sql语法,虽然druid的主要方向并不在此,有些大柴小用但是如果可用也是极好的。目前看druid在hive的语法实现上不完全,有些语法还未支持(比如定义个es的外表)。但是要实现具体的语法,门槛还是有的,相较antlr还是有点复杂、而且学习该技能通用型较差。实地勘探发现druid在sql格式化方法中的两个问题,当然在格式化这个问题上这个还存在另外一个更大的问题就是注释(这个它并没有关注,只是保留了两个listener):

继续阅读