Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
a3eeb577
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22017
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看板
提交
a3eeb577
编写于
3月 26, 2022
作者:
D
dingbo
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add java schemaless example
上级
60b68dcf
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
67 addition
and
6 deletion
+67
-6
docs-cn/06-insert-data/_java_line.mdx
docs-cn/06-insert-data/_java_line.mdx
+3
-0
docs-cn/06-insert-data/_java_opts_json.mdx
docs-cn/06-insert-data/_java_opts_json.mdx
+3
-0
docs-cn/06-insert-data/_java_opts_telnet.mdx
docs-cn/06-insert-data/_java_opts_telnet.mdx
+3
-0
docs-cn/14-reference/03-connector/java.mdx
docs-cn/14-reference/03-connector/java.mdx
+43
-3
docs-cn/14-reference/13-schemaless/13-schemaless.md
docs-cn/14-reference/13-schemaless/13-schemaless.md
+3
-3
docs-examples/java/src/main/java/com/taos/example/JSONProtocolExample.java
...a/src/main/java/com/taos/example/JSONProtocolExample.java
+4
-0
docs-examples/java/src/main/java/com/taos/example/LineProtocolExample.java
...a/src/main/java/com/taos/example/LineProtocolExample.java
+4
-0
docs-examples/java/src/main/java/com/taos/example/TelnetLineProtocolExample.java
...main/java/com/taos/example/TelnetLineProtocolExample.java
+4
-0
未找到文件。
docs-cn/06-insert-data/_java_line.mdx
浏览文件 @
a3eeb577
```java
{{#include docs-examples/java/src/main/java/com/taos/example/LineProtocolExample.java}}
```
docs-cn/06-insert-data/_java_opts_json.mdx
浏览文件 @
a3eeb577
```java
{{#include docs-examples/java/src/main/java/com/taos/example/JSONProtocolExample.java}}
```
docs-cn/06-insert-data/_java_opts_telnet.mdx
浏览文件 @
a3eeb577
```java
{{#include docs-examples/java/src/main/java/com/taos/example/TelnetLineProtocolExample.java}}
```
docs-cn/14-reference/03-connector/java.mdx
浏览文件 @
a3eeb577
...
...
@@ -357,7 +357,7 @@ JDBC 连接器可能报错的错误码包括 3 种:JDBC driver 本身的报错
- https://github.com/taosdata/TDengine/blob/develop/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBErrorNumbers.java
- https://github.com/taosdata/TDengine/blob/develop/src/inc/taoserror.h
###
<a class="anchor" id="stmt-java"></a>
通过参数绑定写入数据
### 通过参数绑定写入数据
从 2.1.2.0 版本开始,TDengine 的 JDBC-JNI 实现大幅改进了参数绑定方式对数据写入(INSERT)场景的支持。采用这种方式写入数据时,能避免 SQL 语法解析的资源消耗,从而在很多情况下显著提升写入性能。
注意:
...
...
@@ -626,7 +626,47 @@ public void setString(int columnIndex, ArrayList<String> list, int size) throws
public void setNString(int columnIndex, ArrayList<String> list, int size) throws SQLException
```
### <a class="anchor" id="set-client-configuration"></a>设置客户端参数
### 无模式写入
从 2.2.0.0 版本开始,TDengine 增加了对无模式写入功能。无模式写入兼容 InfluxDB 的 行协议(Line Protocol)、OpenTSDB 的 telnet 行协议和 OpenTSDB 的 JSON 格式协议。详情请参见[无模式写入](https://www.taosdata.com/docs/cn/v2.0/insert#schemaless)。
注意:
- JDBC-RESTful 实现并不提供无模式写入这种使用方式
- 以下示例代码基于 taos-jdbcdriver-2.0.36
示例代码:
```java
public class SchemalessInsertTest {
private static final String host = "127.0.0.1";
private static final String lineDemo = "st,t1=3i64,t2=4f64,t3=\"t3\" c1=3i64,c3=L\"passit\",c2=false,c4=4f64 1626006833639000000";
private static final String telnetDemo = "stb0_0 1626006833 4 host=host0 interface=eth0";
private static final String jsonDemo = "{\"metric\": \"meter_current\",\"timestamp\": 1346846400,\"value\": 10.3, \"tags\": {\"groupid\": 2, \"location\": \"Beijing\", \"id\": \"d1001\"}}";
public static void main(String[] args) throws SQLException {
final String url = "jdbc:TAOS://" + host + ":6030/?user=root&password=taosdata";
try (Connection connection = DriverManager.getConnection(url)) {
init(connection);
SchemalessWriter writer = new SchemalessWriter(connection);
writer.write(lineDemo, SchemalessProtocolType.LINE, SchemalessTimestampType.NANO_SECONDS);
writer.write(telnetDemo, SchemalessProtocolType.TELNET, SchemalessTimestampType.MILLI_SECONDS);
writer.write(jsonDemo, SchemalessProtocolType.JSON, SchemalessTimestampType.NOT_CONFIGURED);
}
}
private static void init(Connection connection) throws SQLException {
try (Statement stmt = connection.createStatement()) {
stmt.executeUpdate("drop database if exists test_schemaless");
stmt.executeUpdate("create database if not exists test_schemaless");
stmt.executeUpdate("use test_schemaless");
}
}
}
```
### 设置客户端参数
从 TDengine-2.3.5.0 版本开始,jdbc driver 支持在应用的第一次连接中,设置 TDengine 的客户端参数。Driver 支持 JDBC-JNI 方式中,通过 jdbcUrl 和 properties 两种方式设置 client parameter。
注意:
...
...
@@ -687,7 +727,7 @@ public class ClientParameterSetting {
}
```
##
<a class="anchor" id="subscribe"></a>
订阅
## 订阅
### 创建
...
...
docs-cn/14-reference/13-schemaless/13-schemaless.md
浏览文件 @
a3eeb577
...
...
@@ -6,7 +6,6 @@
从 2.2.0.0 版本开始,提供调用 Schemaless 写入方式,可以免于预先创建超级表/子表的步骤,随着数据写入接口能够自动创建与数据对应的存储结构。并且在必要时,Schemaless
将自动增加必要的数据列,保证用户写入的数据可以被正确存储。
无模式写入方式建立的超级表及其对应的子表与通过 SQL 直接建立的超级表和子表完全没有区别,你也可以通过,SQL 语句直接向其中写入数据。需要注意的是,通过无模式写入方式建立的表,其表名是基于标签值按照固定的映射规则生成,所以无法明确地进行表意,缺乏可读性。
## 无模式写入行协议
...
...
@@ -80,9 +79,10 @@ st,t1=3,t2=4,t3=t3 c1=3i64,c3="passit",c2=false,c4=4f64 1626006833639000000
7.
如果指定的数据子表已经存在,而且本次指定的标签列取值跟已保存的值不一样,那么最新的数据行中的值会覆盖旧的标签列取值。
8.
整个处理过程中遇到的错误会中断写入过程,并返回错误代码。
:::
T
ip
:::
t
ip
无模式所有的处理逻辑,仍会遵循 TDengine 对数据结构的底层限制,例如每行数据的总长度不能超过
16k 字节。这方面的具体限制约束请参见
[
TAOS SQL 边界限制
](
https://www.taosdata.com/cn/documentation/taos-sql#limitation
)
:::
## 时间分辨率识别
...
...
@@ -161,4 +161,4 @@ TDengine 提供数据写入的幂等性保证,即您可以反复调用 API 进
如果是无模式写入过程中的数据本身错误,应用会得到 TSDB_CODE_TSC_LINE_SYNTAX_ERROR
错误信息,该错误信息表明错误发生在写入文本中。其他的错误码与原系统一致,可以通过
taos_errstr 获取具体的错误原因。
\ No newline at end of file
taos_errstr 获取具体的错误原因。
docs-examples/java/src/main/java/com/taos/example/JSONProtocolExample.java
0 → 100644
浏览文件 @
a3eeb577
package
com.taos.example
;
public
class
JSONProtocolExample
{
}
docs-examples/java/src/main/java/com/taos/example/LineProtocolExample.java
0 → 100644
浏览文件 @
a3eeb577
package
com.taos.example
;
public
class
LineProtocolExample
{
}
docs-examples/java/src/main/java/com/taos/example/TelnetLineProtocolExample.java
0 → 100644
浏览文件 @
a3eeb577
package
com.taos.example
;
public
class
TelnetLineProtocolExample
{
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录