4.1 数据源

4.1.1 简介

  建数据主要的目的是创建数据集,但是数据集的创建需要依赖于数据源,数据源顾名思义,既是数据的来源。
  数据的来源是多种多样的,我们根据数据来源的不同,把数据源分成了分为三大类:文件数据源、数据库以及大数据引擎数据源和第三方接口数据源。目前在DataViz中,支持20多种常见的数据源。 如下图: 001.png

  • 文件数据源2种,包括:Excel数据源和CSV数据源;
  • 数据库数据源10种,包括:MySQL,Oracle,SQLServer,PostgreSQL,Gbase,Informix,达梦,神通,DB2和H2;
  • 大数据数据源6种,包括:Kylin,Cloudera Impala,Hive,memsql,MongoDB和Phoenix;
  • 第三方接口数据2种,包括:OData数据源和Rest数据源;

  数据源属于用户资源,同一用户下的数据源,在该用户的任何项目中都可以使用,但不能跨用户使用。

4.1.1.1 文件数据源

  文件数据源需要上传存储数据的文件,并且如果要更新数据源中的数据,在文件中修改数据后,需要重新上传数据文件。 另外,文件数据源还需要遵循一定的格式,过于复杂的数据格式是无法解析的。

4.1.1.1.1 Excel数据源

  Excel数据源支持多Sheet页,每个Sheet页都会被解析成一个表;Sheet页第一行作为表头,表头中的每个单元格的内容不能为空, 表头会被解析成表中字段的名称;而字段的数据类型会根据每列中字段单元格格式和正则匹配进行解析,因此excel中每列的单元格格式要求统一。标准的格式如下图: 002.png
当字段格式中出现不统一的情况时,如下图,虽然在excel中设置了单元格格式为时间类型,但由于DataViz是遍历当前列的所有单元格来最终决定该列的数据类型,因此当检查到存在非时间格式的单元格时,会将该列的数据类型最终认定为字符串类型。这样,就无法利用时间相关的计算函数参与计算。
018.png
019.png   目前可以识别的日期类型格式为:日期,日期+时间,时间,例如:

  • 日期类型:2019年1月1日,2019年01月01日,2019/1/1,2019/01/01,2019-1-1,2019-01-01;
  • 日期+时间:2019年1月1日 12:00:00,2019/1/1 12:00:00,2019-01-01 12:00:00;
  • 时间:12:00:00;

4.1.1.1.2 CSV数据源

  CSV数据源要求每列内容必须被封闭在双引号("")内,每行数据中各个列的内容用半角逗号(,)分隔,第一行会作为表头, 表头中列的内容不能为空,表头被解析为列名,文件内容的字符编码最好是UTF8,可以避免乱码的出现,具体格式如下图: 003.png

4.1.1.2 数据库及大数据引擎数据源

  数据库和大数据引擎数据源都是基于JDBC(Java DataBase Connectivit,java数据库连接,是一种用于执行SQL语句的Java API, 可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口, 使数据库开发人员能够编写数据库应用程序)进行对接和实现的。所以,针对支持JDBC,但是不在产品中列出的数据库产品,可以联系产品团队去做技术对接。

  对于DataViz内置的Imapla和Phoenix数据源,需要注意:

  1. Impala本身不支持中文元数据,这里借由hive读取,需要配置internalConfig.properties 中的如下内容:

     internal.hiveHost=master  
     internal.hivePort=10000
    
  2. Phoenix数据源

    • DataViz所在服务器的hosts文件添加配置,如果Phoenix服务Zookeeper的hostname为master,那么添加如下内容:

        10.4.53.163    master
      
    • 替换DataViz的 guava-xxx.jar 版本范围是12~16。
    • 开启数据库schema,需要的在hbase服务的配置文件hbase-site.xml和dataviz服务中phoenix客户端jar包中的 hbase-defualt.xml中添加如下配置内容:

        <property>
            <name>phoenix.schema.isNamespaceMappingEnabled</name>
            <value>true</value>
        </property>
        <property>
            <name>phoenix.schema.mapSystemTablesToNamespace</name>
            <value>true</value>
        </property>
      

4.1.1.3 第三方接口数据源

  第三方接口数据源目前支持支OData和Rest数据源,并支持OAuth2.0权限校验。我们把从接口数据源中获取的数据放置在一个内存数据库中, 数据的更新时间间隔默认是30分钟,可以在配置文件internalConfig.properties中进行设置,最小间隔单位1分钟,如果需要实时刷新可以设置为0。 配置如下:

internal.oDataInterval=30

4.1.1.3.1 OData数据源

  可以把OData数据源接口当作一个指定数据返回格式的Rest。接口返回的数据为Json格式,并且要以value关键字作为数据列表的名称。 具体格式参考如下:

{
    "value": [{
        "orderId": "2016010313265448",
        "orderDate": "2016-01-03",
        "category": "食品",
        "goods": "面包",
        "count": 2,
        "cost": 2.8,
        "payment": 8.8,
        "buyer": "徐先生",
        "province": "江西省",
        "city": "南昌市"
    }, {
        "orderId": "2016011352714789",
        "orderDate": "2016-01-13",
        "category": "服装",
        "goods": "男士T恤",
        "count": 1,
        "cost": 41.0,
        "payment": 180.0,
        "buyer": "胡先生",
        "province": "辽宁省",
        "city": "大连市"
    }]
}

4.1.1.3.2 Rest数据源

  而Rest数据源接口就是直接返回列表数据,接口返回的数据为Json格式。具体格式参考如下:

[{
    "orderId": "2016010313265448",
    "orderDate": "2016-01-03",
    "category": "食品",
    "goods": "面包",
    "count": 2,
    "cost": 2.8,
    "payment": 8.8,
    "buyer": "徐先生",
    "province": "江西省",
    "city": "南昌市"
}, {
    "orderId": "2016011352714789",
    "orderDate": "2016-01-13",
    "category": "服装",
    "goods": "男士T恤",
    "count": 1,
    "cost": 41.0,
    "payment": 180.0,
    "buyer": "胡先生",
    "province": "辽宁省",
    "city": "大连市"
}]

4.1.2 数据源管理

在项目资源页面,点击“建数据”,进入数据源管理页面,页面如下: 004.png

4.1.2.1 创建数据源

点击上方的“数据源”,创建数据源,进入数据源类型选择页面: 005.png

  • 选择文件数据源后弹出页面: 006.png

    考虑到服务器的资源占用情况,目前文件数据源支持最大20M文件上传。 如果需要调整需要修改Dataviz后台服务中dataviz-chartdata.jar内的datasourceType.yaml配置文件,修改内容如下: 007.png 上传文件后,确认保存。

  • 选择数据库数据源后弹出页面: 008.png

    输入数据源信息后,点击测试连接可以测试数据源是否正常连接,然后确认保存。

      如果需要多个数据库关联使用,可以勾选‘跨schema’,然后再勾选需要使用的数据库。这样在数据集制作页面就可以看到选中的数据库中的表了。 跨schema配置如下: 009.png

  • 选择第三方OData和Rest数据源后弹出页面: 010.png

    输入接口请求地址,选择授权方式并填写授权信息,然后保存数据源。

数据源保存成功后会直接进入到数据集页面: 011.png

4.1.2.2 编辑数据源

  数据源管理页面,鼠标悬浮在数据源上,点击编辑按钮,弹出数据源编辑页面,可以修改数据源的信息,如下图: 012.png

  Excel数据源和CSV数据源可以通过编辑重新上传数据文件,达到更新数据源数据的目的。

4.1.2.3 删除数据源

  数据源管理页面,鼠标悬浮在数据源上,点击删除按钮可以删除单个数据源,如下图: 013.png

  也点击页面右上角的删除图标,点选要删除的数据源,点击页面下的删除按钮进行批量删除,如下图: 014.png

  当数据源被数据集使用时,则无法删除,会给出提示信息。

4.1.2.4 数据源重命名

  数据源管理页面,鼠标悬浮在数据源上,点击重命名按钮可以数据源进行重命名,如下图: 015.png

4.1.2.5 文件数据源导出

  数据源管理页面,鼠标悬浮在文件数据源上,点击导出按钮可以导出数据源数据,如下图: 016.png

4.1.2.6 数据集迁移

  数据源管理页面,鼠标悬浮在数据源上,点击数据集迁移按钮,可以对该数据源下的数据集进行迁移。迁移时可以按项目和数据集进行选择。如下图: 017.png

【注意】数据集迁移需要保证两个数据源中的表结构完全一致,包含:表名,字段名以及字段类型等。

4.1.2.7 内网穿透

4.1.2.7.1 什么是内网穿透?  

  当计算机处于局域网内时,外网与内网的计算机节点需要连接通信,而内网的计算机通常并不支持外网访问,而通过内网穿透技术则可以打通内外网的连接,从而支持外网对内网的访问。

4.1.2.7.1 内网穿透的使用场景

  内网穿透功能解决了私有部署复杂的问题,只需要在云端部署DataViz产品,便可通过内网穿透功能连接到内网,访问内网数据,功能示意图如下: 023.png

4.1.2.7.3 如何使用内网穿透?

  在使用内网穿透前,需要提前安装1.8及以上版本的JDK。使用流程如下图所示:

  1. 新建数据源,输入数据源信息
  2. 点击开启内网穿透
  3. 输入客户端名称
  4. 点击下载客户端,将客户端放于可连接外网并可访问内网数据库的计算机上
  5. Windows系统执行客户端文件bin目录下的startup.bat开启,Linux系统执行startup.sh开启,执行stop.sh文件关闭
    020.png

  021.png

  1. 如果想使用已经创建过得客户端,可点击'已有客户端',客户端下拉列表中显示当前用户曾经创建的客户端,选择想使用的客户端并启动相应的客户端即可实现内网穿透
  2. 如果已创建的客户端不慎丢失,可点击'重新下载客户端'

022.png

results matching ""

    No results matching ""

    results matching ""

      No results matching ""