4.1 数据源

4.1.1 简介

  建数据主要的目的是创建数据集,但是数据集的创建需要依赖于数据源,数据源顾名思义,既是数据的来源。

  数据的来源是多种多样的,我们根据数据来源的不同,把数据源分成了分为三大类:文件数据源、数据库以及大数据引擎数据源和第三方接口数据源。目前在DataViz中,支持20多种常见的数据源。如下图所示。 datasource/datasource-1

  • 文件数据源2种,包括:Excel数据源和CSV数据源;
  • 数据库数据源15种,包括:MySQL,MariaDB,Oracle,Oracle ADW,SQLServer,PostgreSQL,Greenplum,DB2,Informix,Gbase,达梦,神通,Huawei DWS,H2和Druid;
  • 大数据数据源10种,包括:Kylin,Cloudera Impala,Hive,MemSQL,Presto,MongoDB,Phoenix,Amazon Athena,ArgoDB和ClickHouse;
  • 第三方接口数据3种,包括:OData,Rest和DataInsight;

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

4.1.2 文件数据源

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

4.1.2.1 Excel数据源

  Excel数据源支持多Sheet页,每个Sheet页都会被解析成一个表;Sheet页第一行作为表头,表头中的每个单元格的内容不能为空, 表头会被解析成表中字段的名称;而字段的数据类型会根据每列中字段单元格格式和正则匹配进行解析,因此Excel中每列的单元格格式要求统一。标准的格式如下图: datasource/datasource-2

【注意】当字段格式中出现不统一的情况时,虽然在Excel中设置了单元格格式为时间类型,但由于DataViz是遍历当前列的所有单元格来最终决定该列的数据类型,因此当检查到存在非时间格式的单元格时,会将该列的数据类型最终认定为字符串类型。这样,就无法利用时间相关的计算函数参与计算。如下图所示,假设在“订单日期”一列中存在非时间格式的单元格,Dataviz会将这一列数据归属为文本类型,而非时间类型。

datasource/datasource-3

datasource/datasource-4

​ 目前可以识别的日期类型格式为:日期,日期+时间,时间,例如:

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

4.1.2.2 CSV数据源

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

datasource/datasource-5

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

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

  使用数据库进行数据源的创建、编辑、删除等操作,请参见第4.1.5节。需要特别说明的是,对于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.4 第三方接口数据源

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

internal.oDataInterval=30

4.1.4.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.4.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.5 数据源管理

  在项目资源页面,点击“建数据”,进入数据源管理页面,如下图所示。

datasource/datasource-6

4.1.5.1 创建数据源

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

datasource/datasource-7

4.1.5.1.1 文件数据源

  选择文件数据源后弹出页面:

datasource/datasource-8

​ 考虑到服务器的资源占用情况,目前文件数据源支持最大20M文件上传。

​ 如果需要调整需要修改Dataviz后台服务中dataviz-chartdata.jar内的datasourceType.yaml配置文件,该文件位于:dataviz-service/WEB-INF/lib中。修改内容如下:

datasource/datasource-9

​ 上传文件后,确认保存。

4.1.5.1.2 数据库数据源

​ 选择数据库数据源后弹出页面:

datasource/datasource-10

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

​ 如果需要多个数据库关联使用,可以勾选“跨schema”,然后再勾选需要使用的数据库。这样在数据集制作页面就可以看到选中的数据库中的表了。

​ 跨schema配置如下:

datasource/datasource-11

​ 如果需要开启内网穿透功能,请参考第4.1.5.9节。

4.1.5.1.3 第三方数据源

​ 选择第三方OData和Rest数据源后弹出页面:

datasource/datasource-12

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

​ 数据源保存成功后会直接进入到数据集页面,如下图所示。

datasource/datasource-13

4.1.5.2 编辑数据源

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

​ 对于数据库数据源,将鼠标悬浮在数据源上,点击编辑按钮,在弹出数据源编辑页面中修改数据源的信息,如下图所示。

datasource/datasource-14

4.1.5.3 删除数据源

  在数据源管理页面,将鼠标悬浮在数据源上,点击删除按钮可以删除单个数据源,如下图所示。

datasource/datasource-15

​ 如果需要批量删除数据源,点击页面右上角的删除图标,然后选择要删除的数据源,点击页面下的删除按钮进行批量删除,如下图所示。

datasource/datasource-16

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

4.1.5.4 数据源重命名

  在数据源管理页面,将鼠标悬浮在数据源上,点击重命名按钮即可进行数据源的重命名,如下图所示。

datasource/datasource-17

4.1.5.5 数据源排序

​ 在数据源数量较多时,可以对数据源进行排序,将鼠标悬浮在数据源上,点击排序向前、排序向后按钮即可调整数据源顺序。

4.1.5.6 文件数据源导出

  如果需要将文件数据源的数据导出,可将鼠标悬浮在文件数据源上,点击导出按钮可以导出数据源数据,如下图所示。

datasource/datasource-18

4.1.5.7 数据集迁移

  如果需要将某个数据源下的数据集迁移到另一个数据源,可将鼠标悬浮在数据源上,点击数据集迁移按钮,在弹出的窗口中按项目和数据集进行选择。如下图所示。

datasource/datasource-19

datasource/datasource-20

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

4.1.5.8 数据过滤

​ 数据源的数据过滤功能可以通过用户设置的过滤字段与系统变量的联系,将原始数据进行过滤。将鼠标悬浮在数据源上,点击数据源右上角的数据过滤按钮,即可在弹出窗口中进行设置,如下图所示。详细的说明请参见第4.4节。

datasource/datasource-21

datasource/datasource-22

4.1.5.9 内网穿透

4.1.5.9.1 什么是内网穿透?

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

4.1.5.9.2 内网穿透的使用场景

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

datasource/datasource-23

4.1.5.9.3 如何使用内网穿透?

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

  1. 新建数据源,输入数据源信息;

  2. 点击开启内网穿透;

  3. 输入客户端名称;

  4. 点击下载客户端,将客户端放于可连接外网并可访问内网数据库的计算机上;

  5. Windows系统执行客户端文件bin目录下的startup.bat开启,Linux系统执行startup.sh开启,执行stop.sh文件关闭;

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

  7. 如果已创建的客户端不慎丢失,可点击'重新下载客户端'。

    datasource/datasource-24

    datasource/datasource-25

    datasource/datasource-26

results matching ""

    No results matching ""

    results matching ""

      No results matching ""