数据源管理

数据服务提供高可用的数据源,支持MySQL、Oracle、SQLServer、PostgreSQL、DB2、阿里云Analytic DB、RDS、TiDB、Impala、Kylin、ElasticSearch、MongoDB等多种数据源,支持数据连接性测试。

支持的数据源类型

数据源分类 数据源类型 向导模式 自定义SQL模式 版本

关系型数据库

Analytic DB

Y

Y

DB2

Y

Y

DB2 9、10

MySQL

Y

Y

MySQL5.1.5及以上

Oracle

Y

Y

Oracle 10、11

SQLServer

Y

Y

SQLServer 2012及以上

PostgreSQL

Y

Y

PostgreSQL 10.0及以上

KingBase

Y

Y

KingBase 8.2、8.3

分析型数据库

Impala

Y

Y

cdh6.0以上

Kylin

Y

Y

TiDB

Y

Y

TiDB 3.x以上

NoSQL

HBase

Y

N

HBase 1.2及以上

ElasticSearch

N

Y

Elasticsearch 5.X、6.X、7.X

MongoDB

N

Y

MongoDB 4.0及以上

数据源配置

生成API的前置条件是需将数据源配置完成。配置数据源的步骤可分为三步。

步骤一:点击数据源管理下的"新增数据源",进入数据源配置窗口。

新增数据源

步骤二:配置数据源连接信息,填写数据库连接地址,用户名,密码等。

配置数据源

关系型与分析型数据库

关系型数据库与分析型数据库的数据源配置基本是类似的,其原理为利用JDBC将Java代码连接到数据库,从而向数据库发送SQL命令,并处理数据库返回的结果。下面的描述适用于Analytic DB、DB2、MySQL、Oracle、PostgreSQL、SQLServer、TiDB、Impala、Kylin、KingBaseES8。

这里以Impala数据源为例,配置数据源所需连接信息如图所示

配置数据源_1
  • JDBC URL: 访问Impala数据库的连接地址,JDBC URL格式如:

jdbc:impala://localhost:port/dbname
  • host:Impala的host名或ip地址

  • port:Impala的访问端口

  • dbname:Impala的数据库名,用户后续配置API时,可选择库内的数据表。

  • 用户名:访问数据库的用户名

  • 密码:访问数据库的密码

  • DefaultFS: 默认情况下,此参数配置为:`hdfs://host:port`。

  • 高可用配置:补充高可用配置参数,可以使API访问高可用模式下的Impala数据源,高可用配置的格式及示例如下:

dfs.nameservices
dfs.ha.namenodes.${nameservice名称}
dfs.namenode.rpc-address.${nameservice名称}.${namenode名称}
dfs.client.failover.proxy.provider.${nameservice名称}
{
    "dfs.ha.namenodes.ns1":"nn1,nn2",
    "dfs.namenode.rpc-address.ns1.nn1":"172.16.101.196:9000",
    "dfs.namenode.rpc-address.ns1.nn2":"172.16.101.227:9000",
    "dfs.client.failover.proxy.provider.ns1":"org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider",
    "dfs.nameservices":"ns1"
}
每个数据源必须指定一个DataBase,如果需要从多个库中获取数据,可配置多个数据源

NoSQL

NoSQL数据库的数据源配置较为类似,通过连接集群达到数据源配置的目的,例如HBase提供Zookeeper集群地址做为访问地址。下面的描述适用于HBase1.x、2.x,ElasticSearch、MongoDB。

这里以HBase1.x为例,配置数据源所需连接信息如图所示

hbase
  • Zookeeper集群地址: 必填,多个地址间用逗号分割。例如: IP1:Port, IP2:Port, IP3:Port/子目录 ,默认是 localhost

  • 其他参数:以JSON方式传入其他参数,例如:

"hbaseConfig": {
"hbase.rootdir": "hdfs: //ip:9000/hbase",
"hbase.cluster.distributed": "true",
"hbase.zookeeper.quorum": "***"
}
  • Kerberos认证

Kerberos是用于身份认证并且能够提供双向认证的协议。为加强安全性,数据源连接过程中可选择进行Kerberos鉴权,通过获取客户端的principal和keytab文件在应用程序中进行认证。目前数据服务支持Kerberos认证的数据源有HBase和Impala。

以HBase1.x为例,需要进行的操作如下

kerberos认证.png
  • 第一步:在控制台打开SFTP服务。

  • 第二步:上传Kerberos认证文件:下载《文件说明》查看上传Kerberos认证文件的具体要求,随后在上传文件处上传单个zip格式的文件。

  • 第三步:确定principal:Kerberos认证主体,系统从用户上传的Kerberos认证文件(在图中的上传文件处按照规则上传)中读取,默认选中第一个principal用户,下拉菜单可切换为其他用户。

  • 第四步:输入HBase.master.kerberos.principal、HBase.regionserver.kerberos.principal 开启Kerberos认证的安全集群中HBase的Kerberos用户。

步骤三:测试数据源连通性,完成数据源配置。

测试连通性

在添加/编辑数据源时,完成参数填写后,需主动测试数据源的连通性,只有数据源连接正常的情况下才可以被添加/编辑。

此处的连通性检测只是表示数栈的Web服务器与数据库是连通的,因此此处的连通性成功或失败,并不一定表示底层的连通性。

其他配置与信息

应用状态

应用状态分为“使用中”和“未使用”。

  • 未使用:用户配置完数据源点击“确定”后,数据源的初始状态为“未使用”。

  • 使用中:用户创建API后,数据源的应用状态将改变为“使用中”若某数据源正在使用中,为防止用户误操作,造成API不可用的情况,用户不能删除该数据源。

“使用中”并不代表该数据源相关的API可以正常运行,API是否能够正常运行在数据源层面由数据源的连接状态决定。

连接状态

  • 状态检验:为了保证系统与数据源之间的网络连通性,数据服务每10秒尝试连接一次数据源,并且仅在连续第二次连通失败的时候发出告警(暂时不支持关闭)。

  • 连接失败:当数据源连接处于失败状态时,与该数据源相关的API不可正常运行,应及时检查连接信息、网络连通性等因素。

连接失败