From bbcfbcf705639d1372bc32f9645f8599c1019e40 Mon Sep 17 00:00:00 2001 From: Leto_b Date: Thu, 27 Mar 2025 16:13:55 +0800 Subject: [PATCH] add opc-ua-sink in table model data sync --- .../Table/User-Manual/Data-Sync_timecho.md | 39 ++++++++++++++----- .../User-Manual/Data-Sync_timecho.md | 39 ++++++++++++++----- .../Table/User-Manual/Data-Sync_timecho.md | 25 ++++++++++-- .../User-Manual/Data-Sync_timecho.md | 25 ++++++++++-- 4 files changed, 102 insertions(+), 26 deletions(-) diff --git a/src/UserGuide/Master/Table/User-Manual/Data-Sync_timecho.md b/src/UserGuide/Master/Table/User-Manual/Data-Sync_timecho.md index 655087533..173dab832 100644 --- a/src/UserGuide/Master/Table/User-Manual/Data-Sync_timecho.md +++ b/src/UserGuide/Master/Table/User-Manual/Data-Sync_timecho.md @@ -189,8 +189,8 @@ Detailed introduction of pre-installed plugins is as follows (for detailed param Default processor plugin that does not process incoming data. - sink Plugin - Supported + sink Plugin + Supported do-nothing-sink Does not process outgoing data. @@ -206,6 +206,11 @@ Detailed introduction of pre-installed plugins is as follows (for detailed param iotdb-thrift-ssl-sink Used for data transmission between IoTDB instances (V2.0.0+). Uses Thrift RPC framework with a multi-threaded sync blocking IO model, suitable for high-security scenarios. + + opc-ua-sink + An OPC UA protocol data transfer plugin for IoTDB (V2.0.2 and above), supporting both Client/Server and Pub/Sub communication modes. + + @@ -418,7 +423,7 @@ WITH SINK ( ) ``` -## 4. Reference: Notes +## Reference: Notes You can adjust the parameters for data synchronization by modifying the IoTDB configuration file (`iotdb-system.properties`), such as the directory for storing synchronized data. The complete configuration is as follows: @@ -491,9 +496,9 @@ pipe_air_gap_receiver_port=9780 pipe_all_sinks_rate_limit_bytes_per_second=-1 ``` -## 5. Reference: Parameter Description +## Reference: Parameter Description -### 5.1 source parameter +### source parameter | **Parameter** | **Description** | **Value Range** | **Required** | **Default Value** | | :----------------------- | :----------------------------------------------------------- | :----------------------------------------------------------- | :----------- | :---------------------------------------------------------- | @@ -512,9 +517,9 @@ pipe_all_sinks_rate_limit_bytes_per_second=-1 > - True (recommended): Under this value, the task will process and send the data in real-time. Its characteristics are high timeliness and low throughput. > - False: Under this value, the task will process and send the data in batches (according to the underlying data files). Its characteristics are low timeliness and high throughput. -### 5.2 sink parameter +### sink parameter -#### 5.2.1 iotdb-thrift-sink +#### iotdb-thrift-sink | **Parameter** | **Description** | Value Range | Required | Default Value | | :-------------------------- | :----------------------------------------------------------- | :----------------------------------------------------------- | :------- | :------------ | @@ -529,7 +534,7 @@ pipe_all_sinks_rate_limit_bytes_per_second=-1 | compressor.zstd.level | When the selected RPC compression algorithm is zstd, this parameter can be used to additionally configure the compression level of the zstd algorithm. | Int: [-131072, 22] | No | 3 | | rate-limit-bytes-per-second | The maximum number of bytes allowed to be transmitted per second. The compressed bytes (such as after compression) are calculated. If it is less than 0, there is no limit. | Double: [Double.MIN_VALUE, Double.MAX_VALUE] | No | -1 | -#### 5.2.2 iotdb-air-gap-sink +#### iotdb-air-gap-sink | **Parameter** | **Description** | Value Range | Required | Default Value | | :--------------------------- | :----------------------------------------------------------- | :----------------------------------------------------------- | :------- | :------------ | @@ -542,7 +547,7 @@ pipe_all_sinks_rate_limit_bytes_per_second=-1 | rate-limit-bytes-per-second | The maximum number of bytes allowed to be transmitted per second. The compressed bytes (such as after compression) are calculated. If it is less than 0, there is no limit. | Double: [Double.MIN_VALUE, Double.MAX_VALUE] | No | -1 | | air-gap.handshake-timeout-ms | The timeout duration for the handshake requests when the sender and receiver attempt to establish a connection for the first time, in milliseconds. | Integer | No | 5000 | -#### 5.2.3 iotdb-thrift-ssl-sink +#### iotdb-thrift-ssl-sink | **Parameter** | **Description** | Value Range | Required | Default Value | | :-------------------------- | :----------------------------------------------------------- | :----------------------------------------------------------- | :------- | :------------ | @@ -557,4 +562,18 @@ pipe_all_sinks_rate_limit_bytes_per_second=-1 | compressor.zstd.level | When the selected RPC compression algorithm is zstd, this parameter can be used to additionally configure the compression level of the zstd algorithm. | Int: [-131072, 22] | No | 3 | | rate-limit-bytes-per-second | Maximum bytes allowed per second for transmission (calculated after compression). Set to a value less than 0 for no limit. | Double: [Double.MIN_VALUE, Double.MAX_VALUE] | No | -1 | | ssl.trust-store-path | Path to the trust store certificate for SSL connection. | String.Example: '127.0.0.1:6667,127.0.0.1:6668,127.0.0.1:6669', '127.0.0.1:6667' | Yes | - | -| ssl.trust-store-pwd | Password for the trust store certificate. | Integer | Yes | - | \ No newline at end of file +| ssl.trust-store-pwd | Password for the trust store certificate. | Integer | Yes | - | + +#### opc-ua-sink + +| **Parameter** | **Description** |Value Range | Required | Default Value | +|:-------------------------------------|:-------------------------------------------------------------------------------------------------------| :------------------------------------- |:-------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| sink | opc-ua-sink | String: opc-ua-sink | Yes | | +| sink.opcua.model | OPC UA model used | String: client-server / pub-sub | No | pub-sub | +| sink.opcua.tcp.port | OPC UA's TCP port | Integer: [0, 65536] | No | 12686 | +| sink.opcua.https.port | OPC UA's HTTPS port | Integer: [0, 65536] | No | 8443 | +| sink.opcua.security.dir | Directory for OPC UA's keys and certificates | String: Path, supports absolute and relative directories | No | Opc_security folder``in the conf directory of the DataNode related to iotdb
If there is no conf directory for iotdb (such as launching DataNode in IDEA), it will be the iotdb_opc_Security folder``in the user's home directory | +| sink.opcua.enable-anonymous-access | Whether OPC UA allows anonymous access | Boolean | No | true | +| sink.user | User for OPC UA, specified in the configuration | String | No | root | +| sink.password | Password for OPC UA, specified in the configuration | String | No | root | +| sink.opcua.placeholder | A placeholder string used to substitute for null mapping paths when the value of the ID column is null | String | Optional | "null" | diff --git a/src/UserGuide/latest-Table/User-Manual/Data-Sync_timecho.md b/src/UserGuide/latest-Table/User-Manual/Data-Sync_timecho.md index 655087533..173dab832 100644 --- a/src/UserGuide/latest-Table/User-Manual/Data-Sync_timecho.md +++ b/src/UserGuide/latest-Table/User-Manual/Data-Sync_timecho.md @@ -189,8 +189,8 @@ Detailed introduction of pre-installed plugins is as follows (for detailed param Default processor plugin that does not process incoming data. - sink Plugin - Supported + sink Plugin + Supported do-nothing-sink Does not process outgoing data. @@ -206,6 +206,11 @@ Detailed introduction of pre-installed plugins is as follows (for detailed param iotdb-thrift-ssl-sink Used for data transmission between IoTDB instances (V2.0.0+). Uses Thrift RPC framework with a multi-threaded sync blocking IO model, suitable for high-security scenarios. + + opc-ua-sink + An OPC UA protocol data transfer plugin for IoTDB (V2.0.2 and above), supporting both Client/Server and Pub/Sub communication modes. + + @@ -418,7 +423,7 @@ WITH SINK ( ) ``` -## 4. Reference: Notes +## Reference: Notes You can adjust the parameters for data synchronization by modifying the IoTDB configuration file (`iotdb-system.properties`), such as the directory for storing synchronized data. The complete configuration is as follows: @@ -491,9 +496,9 @@ pipe_air_gap_receiver_port=9780 pipe_all_sinks_rate_limit_bytes_per_second=-1 ``` -## 5. Reference: Parameter Description +## Reference: Parameter Description -### 5.1 source parameter +### source parameter | **Parameter** | **Description** | **Value Range** | **Required** | **Default Value** | | :----------------------- | :----------------------------------------------------------- | :----------------------------------------------------------- | :----------- | :---------------------------------------------------------- | @@ -512,9 +517,9 @@ pipe_all_sinks_rate_limit_bytes_per_second=-1 > - True (recommended): Under this value, the task will process and send the data in real-time. Its characteristics are high timeliness and low throughput. > - False: Under this value, the task will process and send the data in batches (according to the underlying data files). Its characteristics are low timeliness and high throughput. -### 5.2 sink parameter +### sink parameter -#### 5.2.1 iotdb-thrift-sink +#### iotdb-thrift-sink | **Parameter** | **Description** | Value Range | Required | Default Value | | :-------------------------- | :----------------------------------------------------------- | :----------------------------------------------------------- | :------- | :------------ | @@ -529,7 +534,7 @@ pipe_all_sinks_rate_limit_bytes_per_second=-1 | compressor.zstd.level | When the selected RPC compression algorithm is zstd, this parameter can be used to additionally configure the compression level of the zstd algorithm. | Int: [-131072, 22] | No | 3 | | rate-limit-bytes-per-second | The maximum number of bytes allowed to be transmitted per second. The compressed bytes (such as after compression) are calculated. If it is less than 0, there is no limit. | Double: [Double.MIN_VALUE, Double.MAX_VALUE] | No | -1 | -#### 5.2.2 iotdb-air-gap-sink +#### iotdb-air-gap-sink | **Parameter** | **Description** | Value Range | Required | Default Value | | :--------------------------- | :----------------------------------------------------------- | :----------------------------------------------------------- | :------- | :------------ | @@ -542,7 +547,7 @@ pipe_all_sinks_rate_limit_bytes_per_second=-1 | rate-limit-bytes-per-second | The maximum number of bytes allowed to be transmitted per second. The compressed bytes (such as after compression) are calculated. If it is less than 0, there is no limit. | Double: [Double.MIN_VALUE, Double.MAX_VALUE] | No | -1 | | air-gap.handshake-timeout-ms | The timeout duration for the handshake requests when the sender and receiver attempt to establish a connection for the first time, in milliseconds. | Integer | No | 5000 | -#### 5.2.3 iotdb-thrift-ssl-sink +#### iotdb-thrift-ssl-sink | **Parameter** | **Description** | Value Range | Required | Default Value | | :-------------------------- | :----------------------------------------------------------- | :----------------------------------------------------------- | :------- | :------------ | @@ -557,4 +562,18 @@ pipe_all_sinks_rate_limit_bytes_per_second=-1 | compressor.zstd.level | When the selected RPC compression algorithm is zstd, this parameter can be used to additionally configure the compression level of the zstd algorithm. | Int: [-131072, 22] | No | 3 | | rate-limit-bytes-per-second | Maximum bytes allowed per second for transmission (calculated after compression). Set to a value less than 0 for no limit. | Double: [Double.MIN_VALUE, Double.MAX_VALUE] | No | -1 | | ssl.trust-store-path | Path to the trust store certificate for SSL connection. | String.Example: '127.0.0.1:6667,127.0.0.1:6668,127.0.0.1:6669', '127.0.0.1:6667' | Yes | - | -| ssl.trust-store-pwd | Password for the trust store certificate. | Integer | Yes | - | \ No newline at end of file +| ssl.trust-store-pwd | Password for the trust store certificate. | Integer | Yes | - | + +#### opc-ua-sink + +| **Parameter** | **Description** |Value Range | Required | Default Value | +|:-------------------------------------|:-------------------------------------------------------------------------------------------------------| :------------------------------------- |:-------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| sink | opc-ua-sink | String: opc-ua-sink | Yes | | +| sink.opcua.model | OPC UA model used | String: client-server / pub-sub | No | pub-sub | +| sink.opcua.tcp.port | OPC UA's TCP port | Integer: [0, 65536] | No | 12686 | +| sink.opcua.https.port | OPC UA's HTTPS port | Integer: [0, 65536] | No | 8443 | +| sink.opcua.security.dir | Directory for OPC UA's keys and certificates | String: Path, supports absolute and relative directories | No | Opc_security folder``in the conf directory of the DataNode related to iotdb
If there is no conf directory for iotdb (such as launching DataNode in IDEA), it will be the iotdb_opc_Security folder``in the user's home directory | +| sink.opcua.enable-anonymous-access | Whether OPC UA allows anonymous access | Boolean | No | true | +| sink.user | User for OPC UA, specified in the configuration | String | No | root | +| sink.password | Password for OPC UA, specified in the configuration | String | No | root | +| sink.opcua.placeholder | A placeholder string used to substitute for null mapping paths when the value of the ID column is null | String | Optional | "null" | diff --git a/src/zh/UserGuide/Master/Table/User-Manual/Data-Sync_timecho.md b/src/zh/UserGuide/Master/Table/User-Manual/Data-Sync_timecho.md index fc65c8d9f..9de2e03f8 100644 --- a/src/zh/UserGuide/Master/Table/User-Manual/Data-Sync_timecho.md +++ b/src/zh/UserGuide/Master/Table/User-Manual/Data-Sync_timecho.md @@ -188,8 +188,8 @@ IoTDB> SHOW PIPEPLUGINS 默认的 processor 插件,不对传入的数据做任何的处理 - sink 插件 - 支持 + sink 插件 + 支持 do-nothing-sink 不对发送出的数据做任何的处理 @@ -205,6 +205,11 @@ IoTDB> SHOW PIPEPLUGINS iotdb-thrift-ssl-sink 用于 IoTDB 与 IoTDB(V2.0.0 及以上)之间的数据传输。使用 Thrift RPC 框架传输数据,多线程 sync blocking IO 模型,适用于安全需求较高的场景 + + opc-ua-sink + 用于 IoTDB (V2.0.2 及以上)支持OPC UA协议的数据传输插件,支持Client/Server 和 Pub/Sub 两种通信模式。 + + @@ -565,4 +570,18 @@ pipe_all_sinks_rate_limit_bytes_per_second=-1 | compressor.zstd.level | 所选取的 rpc 压缩算法为 zstd 时,可使用该参数额外配置 zstd 算法的压缩等级 | Int: [-131072, 22] | 选填 | 3 | | rate-limit-bytes-per-second | 每秒最大允许传输的 byte 数,计算压缩后的 byte(如压缩),若小于 0 则不限制 | Double: [Double.MIN_VALUE, Double.MAX_VALUE] | 选填 | -1 | | ssl.trust-store-path | 连接目标端 DataNode 所需的 trust store 证书路径 | String.Example: '127.0.0.1:6667,127.0.0.1:6668,127.0.0.1:6669', '127.0.0.1:6667' | 必填 | - | -| ssl.trust-store-pwd | 连接目标端 DataNode 所需的 trust store 证书密码 | Integer | 必填 | - | \ No newline at end of file +| ssl.trust-store-pwd | 连接目标端 DataNode 所需的 trust store 证书密码 | Integer | 必填 | - | + +#### opc-ua-sink + +| **参数** | **描述** | **value 取值范围** | **是否必填** | **默认值** | +|------------------------------------|----------------------------------|-----------------------------| ---------- |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| sink | OPC UA SINK | String: opc-ua-sink | 必填 | | +| sink.opcua.model | OPC UA 使用的模式 | String: client-server / pub-sub | 选填 | pub-sub | +| sink.opcua.tcp.port | OPC UA 的 TCP 端口 | Integer: [0, 65536] | 选填 | 12686 | +| sink.opcua.https.port | OPC UA 的 HTTPS 端口 | Integer: [0, 65536] | 选填 | 8443 | +| sink.opcua.security.dir | OPC UA 的密钥及证书目录 | String: Path,支持绝对及相对目录 | 选填 | iotdb 相关 DataNode 的 conf 目录下的 opc_security 文件夹 /
如无 iotdb 的 conf 目录(例如 IDEA 中启动 DataNode),则为用户主目录下的 iotdb_opc_security 文件夹 / | +| sink.opcua.enable-anonymous-access | OPC UA 是否允许匿名访问 | Boolean | 选填 | true | +| sink.user | 用户,这里指 OPC UA 的允许用户 | String | 选填 | root | +| sink.password | 密码,这里指 OPC UA 的允许密码 | String | 选填 | root | +| sink.opcua.placeholder | 当ID列的值出现null时,用于替代null映射路径的占位字符串 | String | 选填 | "null" | diff --git a/src/zh/UserGuide/latest-Table/User-Manual/Data-Sync_timecho.md b/src/zh/UserGuide/latest-Table/User-Manual/Data-Sync_timecho.md index fc65c8d9f..9de2e03f8 100644 --- a/src/zh/UserGuide/latest-Table/User-Manual/Data-Sync_timecho.md +++ b/src/zh/UserGuide/latest-Table/User-Manual/Data-Sync_timecho.md @@ -188,8 +188,8 @@ IoTDB> SHOW PIPEPLUGINS 默认的 processor 插件,不对传入的数据做任何的处理 - sink 插件 - 支持 + sink 插件 + 支持 do-nothing-sink 不对发送出的数据做任何的处理 @@ -205,6 +205,11 @@ IoTDB> SHOW PIPEPLUGINS iotdb-thrift-ssl-sink 用于 IoTDB 与 IoTDB(V2.0.0 及以上)之间的数据传输。使用 Thrift RPC 框架传输数据,多线程 sync blocking IO 模型,适用于安全需求较高的场景 + + opc-ua-sink + 用于 IoTDB (V2.0.2 及以上)支持OPC UA协议的数据传输插件,支持Client/Server 和 Pub/Sub 两种通信模式。 + + @@ -565,4 +570,18 @@ pipe_all_sinks_rate_limit_bytes_per_second=-1 | compressor.zstd.level | 所选取的 rpc 压缩算法为 zstd 时,可使用该参数额外配置 zstd 算法的压缩等级 | Int: [-131072, 22] | 选填 | 3 | | rate-limit-bytes-per-second | 每秒最大允许传输的 byte 数,计算压缩后的 byte(如压缩),若小于 0 则不限制 | Double: [Double.MIN_VALUE, Double.MAX_VALUE] | 选填 | -1 | | ssl.trust-store-path | 连接目标端 DataNode 所需的 trust store 证书路径 | String.Example: '127.0.0.1:6667,127.0.0.1:6668,127.0.0.1:6669', '127.0.0.1:6667' | 必填 | - | -| ssl.trust-store-pwd | 连接目标端 DataNode 所需的 trust store 证书密码 | Integer | 必填 | - | \ No newline at end of file +| ssl.trust-store-pwd | 连接目标端 DataNode 所需的 trust store 证书密码 | Integer | 必填 | - | + +#### opc-ua-sink + +| **参数** | **描述** | **value 取值范围** | **是否必填** | **默认值** | +|------------------------------------|----------------------------------|-----------------------------| ---------- |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| sink | OPC UA SINK | String: opc-ua-sink | 必填 | | +| sink.opcua.model | OPC UA 使用的模式 | String: client-server / pub-sub | 选填 | pub-sub | +| sink.opcua.tcp.port | OPC UA 的 TCP 端口 | Integer: [0, 65536] | 选填 | 12686 | +| sink.opcua.https.port | OPC UA 的 HTTPS 端口 | Integer: [0, 65536] | 选填 | 8443 | +| sink.opcua.security.dir | OPC UA 的密钥及证书目录 | String: Path,支持绝对及相对目录 | 选填 | iotdb 相关 DataNode 的 conf 目录下的 opc_security 文件夹 /
如无 iotdb 的 conf 目录(例如 IDEA 中启动 DataNode),则为用户主目录下的 iotdb_opc_security 文件夹 / | +| sink.opcua.enable-anonymous-access | OPC UA 是否允许匿名访问 | Boolean | 选填 | true | +| sink.user | 用户,这里指 OPC UA 的允许用户 | String | 选填 | root | +| sink.password | 密码,这里指 OPC UA 的允许密码 | String | 选填 | root | +| sink.opcua.placeholder | 当ID列的值出现null时,用于替代null映射路径的占位字符串 | String | 选填 | "null" |