名称:hive/hive1/spark
hive3对应sourceDTO:Hive3SourceDTO
hive2对应sourceDTO:HiveSourceDTO
hive1对应sourceDTO:Hive1SourceDTO
spark对应sourceDTO:SparkSourceDTO
参数说明:
-
url
- 描述:数据源对应的jdbc连接字符串
- 必选:是
- 默认值:无
-
username
- 描述:数据源的用户名
- 必选:否
- 默认值:无
-
password
- 描述:数据源指定用户名的密码
- 必选:否
- 默认值:无
-
schema
- 描述:数据源指定库
- 必选:否
- 默认值:无
-
connection
- 描述:数据源指定connection
- 必选:否
- 默认值:无
-
defaultFS
- 描述:hdfs defaultFs
- 必选:否
- 默认值:无
-
config
- 描述:hadoop 高可用配置信息,json格式
- 必选:否
- 默认值:无
-
poolConfig
- 描述:数据源池化参数,详见连接池使用
- 必选:否
- 默认值:无
构造数据源对应的sourceDTO,以hive2 为例
HiveSourceDTO sourceDTO = HiveSourceDTO.builder()
.url("jdbc:hive2://xxxx")
.username("xxxx")
.password("xxxx")
.defaultFS("hdfs://ns1")
.config("{\n" +
" \"dfs.ha.namenodes.ns1\": \"nn1,nn2\",\n" +
" \"dfs.namenode.rpc-address.ns1.nn2\": \"kudu2:9000\",\n" +
" \"dfs.client.failover.proxy.provider.ns1\": \"org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider\",\n" +
" \"dfs.namenode.rpc-address.ns1.nn1\": \"kudu1:9000\",\n" +
" \"dfs.nameservices\": \"ns1\"\n" +
"}")
.build();
入参类型:
- HiveSourceDTO:数据源连接信息
出参类型:
- Connection:数据源连接
使用:
IClient client = ClientCache.getClient(DataSourceType.HIVE.getVal());
Connection conn = client.getCon(sourceDTO);
入参类型:
- HiveSourceDTO:数据源连接信息
出参类型:
- Connection:数据源连接
使用:
IClient client = ClientCache.getClient(DataSourceType.HIVE.getVal());
Boolean isConnected = client.testCon(sourceDTO);
入参类型:
- HiveSourceDTO:数据源连接信息
- SqlQueryDTO:查询信息
出参类型:
- List<Map<String, Object>>:执行结果
使用:
// 普通查询
IClient client = ClientCache.getClient(DataSourceType.HIVE.getVal());
String sql = "select * from dtstack limit 10";
SqlQueryDTO queryDTO = SqlQueryDTO.builder().sql(sql).build();
List<Map<String, Object>> mapList = client.executeQuery(sourceDTO, queryDTO);
// 预编译查询
IClient client = ClientCache.getClient(DataSourceType.HIVE.getVal());
String sql = "select * from dtstack limit 10 where id > ? and id < ? ";
List<Object> preFields = new ArrayList<>();
preFields.add(2);
preFields.add(5);
SqlQueryDTO queryDTO = SqlQueryDTO.builder().sql(sql).preFields(preFields).build();
List<Map<String, Object>> mapList = client.executeQuery(sourceDTO, queryDTO);
入参类型:
- HiveSourceDTO:数据源连接信息
- SqlQueryDTO:查询信息
出参类型:
- Boolean:执行成功与否
使用:
IClient client = ClientCache.getClient(DataSourceType.HIVE.getVal());
String sql = "create table if not exists dtstack (id int)";
SqlQueryDTO queryDTO = SqlQueryDTO.builder().sql(sql).build();
client.executeSqlWithoutResultSet(sourceDTO, queryDTO);
入参类型:
- HiveSourceDTO:数据源连接信息
- SqlQueryDTO:查询信息
出参类型:
- List:表名称集合
使用:
IClient client = ClientCache.getClient(DataSourceType.HIVE.getVal());
SqlQueryDTO queryDTO = SqlQueryDTO.builder().build();
List<String> tableList = client.getTableList(sourceDTO, queryDTO);
入参类型:
- HiveSourceDTO:数据源连接信息
- SqlQueryDTO:查询信息
出参类型:
- List:表名称集合
使用:
IClient client = ClientCache.getClient(DataSourceType.HIVE.getVal());
SqlQueryDTO queryDTO = SqlQueryDTO.builder().limit(10).tableNamePattern("xxx").schema("dtstack").build();
List<String> tableList = client.getTableListBySchema(source, queryDTO);
入参类型:
- HiveSourceDTO:数据源连接信息
- SqlQueryDTO:查询信息
出参类型:
- List:表字段 Java 类的标准名称集合
使用:
IClient client = ClientCache.getClient(DataSourceType.HIVE.getVal());
SqlQueryDTO queryDTO = SqlQueryDTO.builder().tableName("dtstack").build();
List<String> columnClassInfo = client.getColumnClassInfo(source, queryDTO);
入参类型:
- HiveSourceDTO:数据源连接信息
- SqlQueryDTO:查询信息
出参类型:
- List:表字段信息集合ColumnMetaDTO
使用:
IClient client = ClientCache.getClient(DataSourceType.HIVE.getVal());
SqlQueryDTO queryDTO = SqlQueryDTO.builder().tableName("dtstack").build();
List<ColumnMetaDTO> columnMetaData = client.getColumnMetaData(source, queryDTO);
入参类型:
- HiveSourceDTO:数据源连接信息
- SqlQueryDTO:查询信息
出参类型:
- String:表字段 Java 类的标准名称集合
使用:
IClient client = ClientCache.getClient(DataSourceType.HIVE.getVal());
SqlQueryDTO queryDTO = SqlQueryDTO.builder().tableName("dtstack").build();
String comment = client.getTableMetaComment(source, queryDTO);
入参类型:
- HiveSourceDTO:数据源连接信息
- SqlQueryDTO:查询信息
出参类型:
- List<List>:预览数据信息
使用:
IClient client = ClientCache.getClient(DataSourceType.HIVE.getVal()); SqlQueryDTO queryDTO = SqlQueryDTO.builder().tableName("dtstack").previewNum(200).build(); List<List<Object>> previewDate = client.getPreview(source, queryDTO);
入参类型:
- HiveSourceDTO:数据源连接信息
- SqlQueryDTO:查询信息
出参类型:
- List:库集合
使用:
IClient client = ClientCache.getClient(DataSourceType.HIVE.getVal()); List<String> allDatabases = client.getAllDatabases(source, SqlQueryDTO.builder().build());
入参类型:
- HiveSourceDTO:数据源连接信息
- SqlQueryDTO:查询信息
出参类型:
- String:建表sql
使用:
IClient client = ClientCache.getClient(DataSourceType.HIVE.getVal()); SqlQueryDTO queryDTO = SqlQueryDTO.builder().tableName("dtstack").build(); String createTableSql = client.getCreateTableSql(source, queryDTO);
入参类型:
- HiveSourceDTO:数据源连接信息
- SqlQueryDTO:查询信息
出参类型:
- String:正在使用的数据库
使用:
IClient client = ClientCache.getClient(DataSourceType.HIVE.getVal()); String currentDatabase = client.getCurrentDatabase(source);
入参类型:
- HiveSourceDTO:数据源连接信息
- SqlQueryDTO:查询信息
出参类型:
- List:表字段信息集合ColumnMetaDTO
使用:
IClient client = ClientCache.getClient(DataSourceType.HIVE.getVal()); SqlQueryDTO queryDTO = SqlQueryDTO.builder().sql("select * from dtstack").build(); List<ColumnMetaDTO> result = client.getColumnMetaDataWithSql(source, queryDTO);
入参类型:
- HiveSourceDTO:数据源连接信息
- SqlQueryDTO:查询信息
出参类型:
- IDownloader:表数据下载器
使用:
IClient client = ClientCache.getClient(DataSourceType.HIVE.getVal()); SqlQueryDTO queryDTO = SqlQueryDTO.builder().sql("select * from nanqi").build(); IDownloader downloader = client.getDownloader(source, queryDTO); downloader.configure(); List<String> metaInfo = downloader.getMetaInfo(); System.out.println(metaInfo); while (!downloader.reachedEnd()){ List<List<String>> result = (List<List<String>>)downloader.readNext(); for (List<String> row : result){ System.out.println(row); } }
入参类型:
- HiveSourceDTO:数据源连接信息
- String:库名
- String:库注释
出参类型:
- Boolean:执行结果
使用:
IClient client = ClientCache.getClient(DataSourceType.HIVE.getVal()); Boolean check = client.createDatabase(source, "dtstack", "comment");
入参类型:
- HiveSourceDTO:数据源连接信息
- String:库名
出参类型:
- Boolean:是否存在
使用:
IClient client = ClientCache.getClient(DataSourceType.HIVE.getVal()); Boolean check = client.isDatabaseExists(source, "dtstack");
入参类型:
- HiveSourceDTO:数据源连接信息
- String:库名
出参类型:
- Boolean:是否存在
使用:
IClient client = ClientCache.getClient(DataSourceType.HIVE.getVal()); Boolean check = client.isTableExistsInDatabase(source, "dtstack", "db");
入参类型:
- HiveSourceDTO:数据源连接信息
- SqlQueryDTO:查询信息
出参类型:
- Table:Table
使用:
IClient client = ClientCache.getClient(DataSourceType.HIVE.getVal()); Table table = client.getTable(source, SqlQueryDTO.builder().tableName("xxx").build());