Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
79be15f5
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
79be15f5
编写于
11月 09, 2021
作者:
H
huolibo
提交者:
GitHub
11月 09, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add schemaless use doc (#8563)
上级
4df6b1b2
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
61 addition
and
8 deletion
+61
-8
src/connector/jdbc/src/main/java/com/taosdata/jdbc/SchemalessStatement.java
.../src/main/java/com/taosdata/jdbc/SchemalessStatement.java
+31
-4
src/connector/jdbc/src/main/java/com/taosdata/jdbc/enums/SchemalessProtocolType.java
.../java/com/taosdata/jdbc/enums/SchemalessProtocolType.java
+8
-0
src/connector/jdbc/src/main/java/com/taosdata/jdbc/enums/SchemalessTimestampType.java
...java/com/taosdata/jdbc/enums/SchemalessTimestampType.java
+1
-1
src/connector/jdbc/src/test/java/com/taosdata/jdbc/SchemalessInsertTest.java
...src/test/java/com/taosdata/jdbc/SchemalessInsertTest.java
+21
-3
未找到文件。
src/connector/jdbc/src/main/java/com/taosdata/jdbc/SchemalessStatement.java
浏览文件 @
79be15f5
...
...
@@ -8,16 +8,35 @@ import java.sql.Connection;
import
java.sql.SQLException
;
import
java.sql.Statement
;
/**
* @author huolibo@qq.com
* @version v1.0.0
* @JDK: 1.8
* @description: this class is an extension of {@link Statement}. use like:
* Statement statement = conn.createStatement();
* SchemalessStatement schemalessStatement = new SchemalessStatement(statement);
* schemalessStatement.execute(sql);
* schemalessStatement.executeSchemaless(lines, SchemalessProtocolType, SchemalessTimestampType);
* @since 2021-11-03 17:10
*/
public
class
SchemalessStatement
extends
AbstractStatementWrapper
{
public
SchemalessStatement
(
Statement
statement
)
{
super
(
statement
);
}
public
void
executeSchemaless
(
String
[]
strings
,
SchemalessProtocolType
protocolType
,
SchemalessTimestampType
timestampType
)
throws
SQLException
{
/**
* batch insert schemaless lines
*
* @param lines schemaless data
* @param protocolType schemaless type {@link SchemalessProtocolType}
* @param timestampType Time precision {@link SchemalessTimestampType}
* @throws SQLException execute insert exception
*/
public
void
executeSchemaless
(
String
[]
lines
,
SchemalessProtocolType
protocolType
,
SchemalessTimestampType
timestampType
)
throws
SQLException
{
Connection
connection
=
this
.
getConnection
();
if
(
connection
instanceof
TSDBConnection
)
{
TSDBConnection
tsdbConnection
=
(
TSDBConnection
)
connection
;
tsdbConnection
.
getConnector
().
insertLines
(
string
s
,
protocolType
,
timestampType
);
tsdbConnection
.
getConnector
().
insertLines
(
line
s
,
protocolType
,
timestampType
);
}
else
if
(
connection
instanceof
RestfulConnection
)
{
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_UNSUPPORTED_METHOD
,
"restful connection is not supported currently"
);
}
else
{
...
...
@@ -25,7 +44,15 @@ public class SchemalessStatement extends AbstractStatementWrapper {
}
}
public
void
executeSchemaless
(
String
sql
,
SchemalessProtocolType
protocolType
,
SchemalessTimestampType
timestampType
)
throws
SQLException
{
executeSchemaless
(
new
String
[]{
sql
},
protocolType
,
timestampType
);
/**
* only one insert
*
* @param line schemaless line
* @param protocolType schemaless type {@link SchemalessProtocolType}
* @param timestampType Time precision {@link SchemalessTimestampType}
* @throws SQLException execute insert exception
*/
public
void
executeSchemaless
(
String
line
,
SchemalessProtocolType
protocolType
,
SchemalessTimestampType
timestampType
)
throws
SQLException
{
executeSchemaless
(
new
String
[]{
line
},
protocolType
,
timestampType
);
}
}
src/connector/jdbc/src/main/java/com/taosdata/jdbc/enums/SchemalessProtocolType.java
浏览文件 @
79be15f5
package
com.taosdata.jdbc.enums
;
import
java.util.Arrays
;
public
enum
SchemalessProtocolType
{
UNKNOWN
,
LINE
,
...
...
@@ -7,4 +9,10 @@ public enum SchemalessProtocolType {
JSON
,
;
public
static
SchemalessProtocolType
parse
(
String
type
)
{
return
Arrays
.
stream
(
SchemalessProtocolType
.
values
())
.
filter
(
protocol
->
type
.
equalsIgnoreCase
(
protocol
.
name
()))
.
findFirst
().
orElse
(
UNKNOWN
);
}
}
src/connector/jdbc/src/main/java/com/taosdata/jdbc/enums/SchemalessTimestampType.java
浏览文件 @
79be15f5
package
com.taosdata.jdbc.enums
;
public
enum
SchemalessTimestampType
{
// Let the database decide
NOT_CONFIGURED
,
HOURS
,
MINUTES
,
...
...
src/connector/jdbc/src/test/java/com/taosdata/jdbc/SchemalessInsertTest.java
浏览文件 @
79be15f5
package
com.taosdata.jdbc
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.taosdata.jdbc.enums.SchemalessProtocolType
;
import
com.taosdata.jdbc.enums.SchemalessTimestampType
;
import
org.junit.After
;
...
...
@@ -10,10 +12,14 @@ import org.junit.Test;
import
java.sql.*
;
public
class
SchemalessInsertTest
{
private
String
host
=
"127.0.0.1"
;
private
String
dbname
=
"test_schemaless_insert"
;
private
final
String
dbname
=
"test_schemaless_insert"
;
private
Connection
conn
;
/**
* schemaless insert compatible with influxdb
*
* @throws SQLException execute error
*/
@Test
public
void
schemalessInsert
()
throws
SQLException
{
// given
...
...
@@ -41,6 +47,11 @@ public class SchemalessInsertTest {
statement
.
close
();
}
/**
* telnet insert compatible with opentsdb
*
* @throws SQLException execute error
*/
@Test
public
void
telnetInsert
()
throws
SQLException
{
// given
...
...
@@ -71,6 +82,11 @@ public class SchemalessInsertTest {
statement
.
close
();
}
/**
* json insert compatible with opentsdb json format
*
* @throws SQLException execute error
*/
@Test
public
void
jsonInsert
()
throws
SQLException
{
// given
...
...
@@ -113,13 +129,15 @@ public class SchemalessInsertTest {
while
(
rs
.
next
())
{
rowCnt
++;
}
// Assert.assertEquals(json.length, rowCnt);
Assert
.
assertEquals
(((
JSONArray
)
JSONObject
.
parse
(
json
)).
size
(),
rowCnt
);
rs
.
close
();
statement
.
close
();
}
@Before
public
void
before
()
{
String
host
=
"127.0.0.1"
;
final
String
url
=
"jdbc:TAOS://"
+
host
+
":6030/?user=root&password=taosdata"
;
try
{
conn
=
DriverManager
.
getConnection
(
url
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录