本文档所描述的内容属于神策分析的高级使用功能,涉及较多技术细节,适用于对相关功能有经验的用户参考。如果对文档内容有疑惑,请咨询神策值班同学获取一对一的协助。
概述
神策系统提供了直接使用 JDBC 方式进行数据查询的能力,该方式适用于代码中集成使用 SQL 查询神策系统表数据,或使用支持 JDBC 的 SQL IDE 工具对神策数据表进行查询。
使用场景
- 数据量:推荐返回小于 1000 万行数据且小于 50 列的查询
- 目前仅限数据查询场景
使用方法
获取 JDBC 地址和认证信息
如果是私有部署,且神策分析版本在 3.0.1 及以上,访问「数据接入→ 数据表管理」页面,点击页面右上角「查看 JDBC 连接信息」链接,即可查看详细信息。
展示内容如下图
JDBC 连接访问
如果使用代码访问,我们建议使用 3.1.3 版本的 Hive JDBC Driver 来进行访问,Maven 的依赖定义如下:
org.apache.hive
hive-jdbc
3.1.3
JDBC 连接示例代码如下:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class JdbcDemo {
public static void main(String[] args) {
String jdbcUrl = "jdbc:hive2://:8416/"; // 替换为实际 JDBC URL
String username = ""; // 替换为实际用户名
String password = ""; // 替换为实际密码
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
try {
// 加载 Hive JDBC 驱动
Class.forName("org.apache.hive.jdbc.HiveDriver");
// 建立连接
System.out.println("Connecting to Hive...");
connection = DriverManager.getConnection(jdbcUrl, username, password);
// 创建 Statement 对象
statement = connection.createStatement();
// 执行查询
String sql = "SELECT event FROM events LIMIT 10"; // 替换为实际 SQL
resultSet = statement.executeQuery(sql);
// 处理结果
while (resultSet.next()) {
// 处理执行结果
// ...
}
System.out.println("Done!");
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭资源
try {
if (resultSet != null) {
resultSet.close();
}
if (statement != null) {
statement.close();
}
if (connection != null) {
connection.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
JDBC 访问认证
- 获取用户名(个人信息->基本信息→登录账号)
- 获取 API-Key,请参考 API Key管理
查询数据
- 通过「数据表管理」模块,查询项目对应的数据库名,如 horizon_production_2;
- 通过 SQL 进行查询
SELECT user_id,distinct_id,event,time,$lib as lib FROM horizon_production_2.events WHERE `date` = CURRENT_DATE() LIMIT 10;
SELECT id,first_id,second_id FROM horizon_production_2.users LIMIT 10;
JDBC 支持 SQL 类型
DQL(SELECT)
SQL | 说明 | 限制 | 样例 |
---|---|---|---|
SELECT | 数据查询 | 无 | SELECT id FROM horizon_production_2.users LIMIT 10; |
附:配置 DBeaver 客户端
JDBC 链接配置信息
- 数据库类型/驱动名称:Apache Hive
- 主机:神策 JDBC Server IP
- 端口:8416
- 用户名:神策用户名
- 密码:神策用户名对应的 API-Key
配置样例