hailin0 commented on code in PR #3387:
URL:
https://github.com/apache/incubator-seatunnel/pull/3387#discussion_r1022271529
##########
seatunnel-connectors-v2/connector-iotdb/src/main/java/org/apache/seatunnel/connectors/seatunnel/iotdb/config/SinkConfig.java:
##########
@@ -35,28 +38,28 @@
@ToString
public class SinkConfig extends CommonConfig {
- public static final String KEY_TIMESTAMP = "key_timestamp";
- public static final String KEY_DEVICE = "key_device";
- public static final String KEY_MEASUREMENT_FIELDS =
"key_measurement_fields";
- public static final String STORAGE_GROUP = "storage_group";
- public static final String BATCH_SIZE = "batch_size";
- public static final String BATCH_INTERVAL_MS = "batch_interval_ms";
- public static final String MAX_RETRIES = "max_retries";
- public static final String RETRY_BACKOFF_MULTIPLIER_MS =
"retry_backoff_multiplier_ms";
- public static final String MAX_RETRY_BACKOFF_MS = "max_retry_backoff_ms";
- public static final String DEFAULT_THRIFT_BUFFER_SIZE =
"default_thrift_buffer_size";
- public static final String MAX_THRIFT_FRAME_SIZE = "max_thrift_frame_size";
- public static final String ZONE_ID = "zone_id";
- public static final String ENABLE_RPC_COMPRESSION =
"enable_rpc_compression";
- public static final String CONNECTION_TIMEOUT_IN_MS =
"connection_timeout_in_ms";
-
private static final int DEFAULT_BATCH_SIZE = 1024;
+ public static final Option<String> KEY_TIMESTAMP =
Options.key("key_timestamp").stringType().noDefaultValue().withDescription("key
timestamp");
+ public static final Option<String> KEY_DEVICE =
Options.key("key_device").stringType().noDefaultValue().withDescription("key
device");
+ public static final Option<String> KEY_MEASUREMENT_FIELDS =
Options.key("key_measurement_fields").stringType().noDefaultValue().withDescription("key
measurement fields");
Review Comment:
```suggestion
public static final Option<String> KEY_MEASUREMENT_FIELDS =
Options.key("key_measurement_fields").listType().noDefaultValue().withDescription("key
measurement fields");
```
##########
seatunnel-connectors-v2/connector-iotdb/src/main/java/org/apache/seatunnel/connectors/seatunnel/iotdb/config/SinkConfig.java:
##########
@@ -35,28 +38,28 @@
@ToString
public class SinkConfig extends CommonConfig {
- public static final String KEY_TIMESTAMP = "key_timestamp";
- public static final String KEY_DEVICE = "key_device";
- public static final String KEY_MEASUREMENT_FIELDS =
"key_measurement_fields";
- public static final String STORAGE_GROUP = "storage_group";
- public static final String BATCH_SIZE = "batch_size";
- public static final String BATCH_INTERVAL_MS = "batch_interval_ms";
- public static final String MAX_RETRIES = "max_retries";
- public static final String RETRY_BACKOFF_MULTIPLIER_MS =
"retry_backoff_multiplier_ms";
- public static final String MAX_RETRY_BACKOFF_MS = "max_retry_backoff_ms";
- public static final String DEFAULT_THRIFT_BUFFER_SIZE =
"default_thrift_buffer_size";
- public static final String MAX_THRIFT_FRAME_SIZE = "max_thrift_frame_size";
- public static final String ZONE_ID = "zone_id";
- public static final String ENABLE_RPC_COMPRESSION =
"enable_rpc_compression";
- public static final String CONNECTION_TIMEOUT_IN_MS =
"connection_timeout_in_ms";
-
private static final int DEFAULT_BATCH_SIZE = 1024;
+ public static final Option<String> KEY_TIMESTAMP =
Options.key("key_timestamp").stringType().noDefaultValue().withDescription("key
timestamp");
+ public static final Option<String> KEY_DEVICE =
Options.key("key_device").stringType().noDefaultValue().withDescription("key
device");
+ public static final Option<String> KEY_MEASUREMENT_FIELDS =
Options.key("key_measurement_fields").stringType().noDefaultValue().withDescription("key
measurement fields");
+ public static final Option<String> STORAGE_GROUP =
Options.key("storage_group").stringType().noDefaultValue().withDescription("store
group");
+ public static final Option<Integer> BATCH_SIZE =
Options.key("batch_size").intType().defaultValue(DEFAULT_BATCH_SIZE).withDescription("batch
size");
+ public static final Option<String> BATCH_INTERVAL_MS =
Options.key("batch_interval_ms").stringType().noDefaultValue().withDescription("batch
interval ms");
+ public static final Option<Integer> MAX_RETRIES =
Options.key("max_retries").intType().noDefaultValue();
+ public static final Option<String> RETRY_BACKOFF_MULTIPLIER_MS =
Options.key("retry_backoff_multiplier_ms").stringType().noDefaultValue();
Review Comment:
```suggestion
public static final Option<String> RETRY_BACKOFF_MULTIPLIER_MS =
Options.key("retry_backoff_multiplier_ms").intType().noDefaultValue();
```
##########
seatunnel-connectors-v2/connector-iotdb/src/main/java/org/apache/seatunnel/connectors/seatunnel/iotdb/config/SinkConfig.java:
##########
@@ -35,28 +38,28 @@
@ToString
public class SinkConfig extends CommonConfig {
- public static final String KEY_TIMESTAMP = "key_timestamp";
- public static final String KEY_DEVICE = "key_device";
- public static final String KEY_MEASUREMENT_FIELDS =
"key_measurement_fields";
- public static final String STORAGE_GROUP = "storage_group";
- public static final String BATCH_SIZE = "batch_size";
- public static final String BATCH_INTERVAL_MS = "batch_interval_ms";
- public static final String MAX_RETRIES = "max_retries";
- public static final String RETRY_BACKOFF_MULTIPLIER_MS =
"retry_backoff_multiplier_ms";
- public static final String MAX_RETRY_BACKOFF_MS = "max_retry_backoff_ms";
- public static final String DEFAULT_THRIFT_BUFFER_SIZE =
"default_thrift_buffer_size";
- public static final String MAX_THRIFT_FRAME_SIZE = "max_thrift_frame_size";
- public static final String ZONE_ID = "zone_id";
- public static final String ENABLE_RPC_COMPRESSION =
"enable_rpc_compression";
- public static final String CONNECTION_TIMEOUT_IN_MS =
"connection_timeout_in_ms";
-
private static final int DEFAULT_BATCH_SIZE = 1024;
+ public static final Option<String> KEY_TIMESTAMP =
Options.key("key_timestamp").stringType().noDefaultValue().withDescription("key
timestamp");
+ public static final Option<String> KEY_DEVICE =
Options.key("key_device").stringType().noDefaultValue().withDescription("key
device");
+ public static final Option<String> KEY_MEASUREMENT_FIELDS =
Options.key("key_measurement_fields").stringType().noDefaultValue().withDescription("key
measurement fields");
+ public static final Option<String> STORAGE_GROUP =
Options.key("storage_group").stringType().noDefaultValue().withDescription("store
group");
+ public static final Option<Integer> BATCH_SIZE =
Options.key("batch_size").intType().defaultValue(DEFAULT_BATCH_SIZE).withDescription("batch
size");
+ public static final Option<String> BATCH_INTERVAL_MS =
Options.key("batch_interval_ms").stringType().noDefaultValue().withDescription("batch
interval ms");
Review Comment:
```suggestion
public static final Option<String> BATCH_INTERVAL_MS =
Options.key("batch_interval_ms").intType().noDefaultValue().withDescription("batch
interval ms");
```
##########
seatunnel-connectors-v2/connector-iotdb/src/main/java/org/apache/seatunnel/connectors/seatunnel/iotdb/config/SinkConfig.java:
##########
@@ -35,28 +38,28 @@
@ToString
public class SinkConfig extends CommonConfig {
- public static final String KEY_TIMESTAMP = "key_timestamp";
- public static final String KEY_DEVICE = "key_device";
- public static final String KEY_MEASUREMENT_FIELDS =
"key_measurement_fields";
- public static final String STORAGE_GROUP = "storage_group";
- public static final String BATCH_SIZE = "batch_size";
- public static final String BATCH_INTERVAL_MS = "batch_interval_ms";
- public static final String MAX_RETRIES = "max_retries";
- public static final String RETRY_BACKOFF_MULTIPLIER_MS =
"retry_backoff_multiplier_ms";
- public static final String MAX_RETRY_BACKOFF_MS = "max_retry_backoff_ms";
- public static final String DEFAULT_THRIFT_BUFFER_SIZE =
"default_thrift_buffer_size";
- public static final String MAX_THRIFT_FRAME_SIZE = "max_thrift_frame_size";
- public static final String ZONE_ID = "zone_id";
- public static final String ENABLE_RPC_COMPRESSION =
"enable_rpc_compression";
- public static final String CONNECTION_TIMEOUT_IN_MS =
"connection_timeout_in_ms";
-
private static final int DEFAULT_BATCH_SIZE = 1024;
+ public static final Option<String> KEY_TIMESTAMP =
Options.key("key_timestamp").stringType().noDefaultValue().withDescription("key
timestamp");
+ public static final Option<String> KEY_DEVICE =
Options.key("key_device").stringType().noDefaultValue().withDescription("key
device");
+ public static final Option<String> KEY_MEASUREMENT_FIELDS =
Options.key("key_measurement_fields").stringType().noDefaultValue().withDescription("key
measurement fields");
+ public static final Option<String> STORAGE_GROUP =
Options.key("storage_group").stringType().noDefaultValue().withDescription("store
group");
+ public static final Option<Integer> BATCH_SIZE =
Options.key("batch_size").intType().defaultValue(DEFAULT_BATCH_SIZE).withDescription("batch
size");
+ public static final Option<String> BATCH_INTERVAL_MS =
Options.key("batch_interval_ms").stringType().noDefaultValue().withDescription("batch
interval ms");
+ public static final Option<Integer> MAX_RETRIES =
Options.key("max_retries").intType().noDefaultValue();
+ public static final Option<String> RETRY_BACKOFF_MULTIPLIER_MS =
Options.key("retry_backoff_multiplier_ms").stringType().noDefaultValue();
+ public static final Option<String> MAX_RETRY_BACKOFF_MS =
Options.key("max_retry_backoff_ms").stringType().noDefaultValue();
+ public static final Option<String> DEFAULT_THRIFT_BUFFER_SIZE =
Options.key("default_thrift_buffer_size").stringType().noDefaultValue();
Review Comment:
```suggestion
public static final Option<String> DEFAULT_THRIFT_BUFFER_SIZE =
Options.key("default_thrift_buffer_size"). intType().noDefaultValue();
```
##########
seatunnel-connectors-v2/connector-iotdb/src/main/java/org/apache/seatunnel/connectors/seatunnel/iotdb/config/SinkConfig.java:
##########
@@ -35,28 +38,28 @@
@ToString
public class SinkConfig extends CommonConfig {
- public static final String KEY_TIMESTAMP = "key_timestamp";
- public static final String KEY_DEVICE = "key_device";
- public static final String KEY_MEASUREMENT_FIELDS =
"key_measurement_fields";
- public static final String STORAGE_GROUP = "storage_group";
- public static final String BATCH_SIZE = "batch_size";
- public static final String BATCH_INTERVAL_MS = "batch_interval_ms";
- public static final String MAX_RETRIES = "max_retries";
- public static final String RETRY_BACKOFF_MULTIPLIER_MS =
"retry_backoff_multiplier_ms";
- public static final String MAX_RETRY_BACKOFF_MS = "max_retry_backoff_ms";
- public static final String DEFAULT_THRIFT_BUFFER_SIZE =
"default_thrift_buffer_size";
- public static final String MAX_THRIFT_FRAME_SIZE = "max_thrift_frame_size";
- public static final String ZONE_ID = "zone_id";
- public static final String ENABLE_RPC_COMPRESSION =
"enable_rpc_compression";
- public static final String CONNECTION_TIMEOUT_IN_MS =
"connection_timeout_in_ms";
-
private static final int DEFAULT_BATCH_SIZE = 1024;
+ public static final Option<String> KEY_TIMESTAMP =
Options.key("key_timestamp").stringType().noDefaultValue().withDescription("key
timestamp");
+ public static final Option<String> KEY_DEVICE =
Options.key("key_device").stringType().noDefaultValue().withDescription("key
device");
+ public static final Option<String> KEY_MEASUREMENT_FIELDS =
Options.key("key_measurement_fields").stringType().noDefaultValue().withDescription("key
measurement fields");
+ public static final Option<String> STORAGE_GROUP =
Options.key("storage_group").stringType().noDefaultValue().withDescription("store
group");
+ public static final Option<Integer> BATCH_SIZE =
Options.key("batch_size").intType().defaultValue(DEFAULT_BATCH_SIZE).withDescription("batch
size");
+ public static final Option<String> BATCH_INTERVAL_MS =
Options.key("batch_interval_ms").stringType().noDefaultValue().withDescription("batch
interval ms");
+ public static final Option<Integer> MAX_RETRIES =
Options.key("max_retries").intType().noDefaultValue();
+ public static final Option<String> RETRY_BACKOFF_MULTIPLIER_MS =
Options.key("retry_backoff_multiplier_ms").stringType().noDefaultValue();
+ public static final Option<String> MAX_RETRY_BACKOFF_MS =
Options.key("max_retry_backoff_ms").stringType().noDefaultValue();
+ public static final Option<String> DEFAULT_THRIFT_BUFFER_SIZE =
Options.key("default_thrift_buffer_size").stringType().noDefaultValue();
+ public static final Option<Integer> MAX_THRIFT_FRAME_SIZE =
Options.key("max_thrift_frame_size").intType().noDefaultValue();
+ public static final Option<String> ZONE_ID =
Options.key("zone_id").stringType().noDefaultValue();
+ public static final Option<String> ENABLE_RPC_COMPRESSION =
Options.key("enable_rpc_compression").stringType().noDefaultValue();
Review Comment:
```suggestion
public static final Option<String> ENABLE_RPC_COMPRESSION =
Options.key("enable_rpc_compression").booleanType().noDefaultValue();
```
##########
seatunnel-connectors-v2/connector-iotdb/src/main/java/org/apache/seatunnel/connectors/seatunnel/iotdb/config/SinkConfig.java:
##########
@@ -35,28 +38,28 @@
@ToString
public class SinkConfig extends CommonConfig {
- public static final String KEY_TIMESTAMP = "key_timestamp";
- public static final String KEY_DEVICE = "key_device";
- public static final String KEY_MEASUREMENT_FIELDS =
"key_measurement_fields";
- public static final String STORAGE_GROUP = "storage_group";
- public static final String BATCH_SIZE = "batch_size";
- public static final String BATCH_INTERVAL_MS = "batch_interval_ms";
- public static final String MAX_RETRIES = "max_retries";
- public static final String RETRY_BACKOFF_MULTIPLIER_MS =
"retry_backoff_multiplier_ms";
- public static final String MAX_RETRY_BACKOFF_MS = "max_retry_backoff_ms";
- public static final String DEFAULT_THRIFT_BUFFER_SIZE =
"default_thrift_buffer_size";
- public static final String MAX_THRIFT_FRAME_SIZE = "max_thrift_frame_size";
- public static final String ZONE_ID = "zone_id";
- public static final String ENABLE_RPC_COMPRESSION =
"enable_rpc_compression";
- public static final String CONNECTION_TIMEOUT_IN_MS =
"connection_timeout_in_ms";
-
private static final int DEFAULT_BATCH_SIZE = 1024;
+ public static final Option<String> KEY_TIMESTAMP =
Options.key("key_timestamp").stringType().noDefaultValue().withDescription("key
timestamp");
+ public static final Option<String> KEY_DEVICE =
Options.key("key_device").stringType().noDefaultValue().withDescription("key
device");
+ public static final Option<String> KEY_MEASUREMENT_FIELDS =
Options.key("key_measurement_fields").stringType().noDefaultValue().withDescription("key
measurement fields");
+ public static final Option<String> STORAGE_GROUP =
Options.key("storage_group").stringType().noDefaultValue().withDescription("store
group");
+ public static final Option<Integer> BATCH_SIZE =
Options.key("batch_size").intType().defaultValue(DEFAULT_BATCH_SIZE).withDescription("batch
size");
+ public static final Option<String> BATCH_INTERVAL_MS =
Options.key("batch_interval_ms").stringType().noDefaultValue().withDescription("batch
interval ms");
+ public static final Option<Integer> MAX_RETRIES =
Options.key("max_retries").intType().noDefaultValue();
+ public static final Option<String> RETRY_BACKOFF_MULTIPLIER_MS =
Options.key("retry_backoff_multiplier_ms").stringType().noDefaultValue();
+ public static final Option<String> MAX_RETRY_BACKOFF_MS =
Options.key("max_retry_backoff_ms").stringType().noDefaultValue();
+ public static final Option<String> DEFAULT_THRIFT_BUFFER_SIZE =
Options.key("default_thrift_buffer_size").stringType().noDefaultValue();
+ public static final Option<Integer> MAX_THRIFT_FRAME_SIZE =
Options.key("max_thrift_frame_size").intType().noDefaultValue();
+ public static final Option<String> ZONE_ID =
Options.key("zone_id").stringType().noDefaultValue();
+ public static final Option<String> ENABLE_RPC_COMPRESSION =
Options.key("enable_rpc_compression").stringType().noDefaultValue();
+ public static final Option<String> CONNECTION_TIMEOUT_IN_MS =
Options.key("connection_timeout_in_ms").stringType().noDefaultValue();
Review Comment:
```suggestion
public static final Option<String> CONNECTION_TIMEOUT_IN_MS =
Options.key("connection_timeout_in_ms").intType().noDefaultValue();
```
##########
seatunnel-connectors-v2/connector-iotdb/src/main/java/org/apache/seatunnel/connectors/seatunnel/iotdb/config/SourceConfig.java:
##########
@@ -25,78 +28,78 @@
*/
public class SourceConfig {
- public static final String SQL = "sql";
+ public static final Option<String> SQL =
Options.key("sql").stringType().noDefaultValue().withDescription("sql");
/*---------------------- single node configurations
-------------------------*/
/**
* The host of the IotDB server.
*/
- public static final String HOST = "host";
+ public static final Option<String> HOST =
Options.key("host").stringType().noDefaultValue().withDescription("host");
/*
* The port of the IotDB server.
*/
- public static final String PORT = "port";
+ public static final Option<String> PORT =
Options.key("port").stringType().noDefaultValue().withDescription("port");
/*---------------------- multiple node configurations
-------------------------*/
/**
* Username for the source.
*/
- public static final String USERNAME = "username";
+ public static final Option<String> USERNAME =
Options.key("username").stringType().noDefaultValue().withDescription("usernam");
/**
* Password for the source.
*/
- public static final String PASSWORD = "password";
+ public static final Option<String> PASSWORD =
Options.key("password").stringType().noDefaultValue().withDescription("password");
/**
* multiple nodes
*/
- public static final String NODE_URLS = "node_urls";
+ public static final Option<String> NODE_URLS =
Options.key("node_urls").stringType().noDefaultValue().withDescription("node
urls");
/*---------------------- other configurations -------------------------*/
/**
* Fetches the next batch of data from the source.
*/
- public static final String FETCH_SIZE = "fetch_size";
+ public static final Option<String> FETCH_SIZE =
Options.key("fetch_size").stringType().noDefaultValue().withDescription("fetch
size");
/**
* thrift default buffer size
*/
- public static final String THRIFT_DEFAULT_BUFFER_SIZE =
"thrift_default_buffer_size";
+ public static final Option<Integer> THRIFT_DEFAULT_BUFFER_SIZE =
Options.key("thrift_default_buffer_size").intType().noDefaultValue().withDescription("
default thrift buffer size of iot db ");
/**
* thrift max frame size
*/
- public static final String THRIFT_MAX_FRAME_SIZE = "thrift_max_frame_size";
+ public static final Option<Integer> THRIFT_MAX_FRAME_SIZE =
Options.key("thrift_max_frame_size").intType().noDefaultValue().withDescription("thrift
max frame size of iot db");
/**
* cassandra default buffer size
*/
- public static final String ENABLE_CACHE_LEADER = "enable_cache_leader";
+ public static final Option<String> ENABLE_CACHE_LEADER =
Options.key("enable_cache_leader").stringType().noDefaultValue();
/**
* Version represents the SQL semantic version used by the client, which
is used to be compatible with the SQL semantics of 0.12 when upgrading 0.13.
The possible values are: V_0_12, V_0_13.
*/
- public static final String VERSION = "version";
+ public static final Option<String> VERSION =
Options.key("version").stringType().noDefaultValue();
/**
* Query lower bound of the time range to be read.
*/
- public static final String LOWER_BOUND = "lower_bound";
+ public static final Option<String> LOWER_BOUND =
Options.key("lower_bound").stringType().noDefaultValue();
Review Comment:
```suggestion
public static final Option<String> LOWER_BOUND =
Options.key("lower_bound").longType().noDefaultValue();
```
##########
seatunnel-connectors-v2/connector-iotdb/src/main/java/org/apache/seatunnel/connectors/seatunnel/iotdb/config/SourceConfig.java:
##########
@@ -25,78 +28,78 @@
*/
public class SourceConfig {
- public static final String SQL = "sql";
+ public static final Option<String> SQL =
Options.key("sql").stringType().noDefaultValue().withDescription("sql");
/*---------------------- single node configurations
-------------------------*/
/**
* The host of the IotDB server.
*/
- public static final String HOST = "host";
+ public static final Option<String> HOST =
Options.key("host").stringType().noDefaultValue().withDescription("host");
/*
* The port of the IotDB server.
*/
- public static final String PORT = "port";
+ public static final Option<String> PORT =
Options.key("port").stringType().noDefaultValue().withDescription("port");
Review Comment:
```suggestion
public static final Option<String> PORT =
Options.key("port").intType().noDefaultValue().withDescription("port");
```
##########
seatunnel-connectors-v2/connector-iotdb/src/main/java/org/apache/seatunnel/connectors/seatunnel/iotdb/sink/IoTDBSinkFactory.java:
##########
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.seatunnel.connectors.seatunnel.iotdb.sink;
+
+import static
org.apache.seatunnel.connectors.seatunnel.iotdb.config.CommonConfig.NODE_URLS;
+import static
org.apache.seatunnel.connectors.seatunnel.iotdb.config.CommonConfig.PASSWORD;
+import static
org.apache.seatunnel.connectors.seatunnel.iotdb.config.CommonConfig.USERNAME;
+
+import org.apache.seatunnel.api.configuration.util.OptionRule;
+import org.apache.seatunnel.api.table.factory.Factory;
+import org.apache.seatunnel.api.table.factory.TableSinkFactory;
+import org.apache.seatunnel.connectors.seatunnel.iotdb.config.SinkConfig;
+
+import com.google.auto.service.AutoService;
+
+@AutoService(Factory.class)
+public class IoTDBSinkFactory implements TableSinkFactory{
+ @Override
+ public String factoryIdentifier() {
+ return "IoTDB";
+ }
+
+ @Override
+ public OptionRule optionRule() {
+ return OptionRule.builder()
+ .required(NODE_URLS, USERNAME, PASSWORD, SinkConfig.KEY_DEVICE)
+ .optional().build();
Review Comment:
```suggestion
.optional(KEY_TIMESTAMP, xxx, .....).build();
```
add all optional keys
##########
seatunnel-connectors-v2/connector-iotdb/src/main/java/org/apache/seatunnel/connectors/seatunnel/iotdb/config/SinkConfig.java:
##########
@@ -35,28 +38,28 @@
@ToString
public class SinkConfig extends CommonConfig {
- public static final String KEY_TIMESTAMP = "key_timestamp";
- public static final String KEY_DEVICE = "key_device";
- public static final String KEY_MEASUREMENT_FIELDS =
"key_measurement_fields";
- public static final String STORAGE_GROUP = "storage_group";
- public static final String BATCH_SIZE = "batch_size";
- public static final String BATCH_INTERVAL_MS = "batch_interval_ms";
- public static final String MAX_RETRIES = "max_retries";
- public static final String RETRY_BACKOFF_MULTIPLIER_MS =
"retry_backoff_multiplier_ms";
- public static final String MAX_RETRY_BACKOFF_MS = "max_retry_backoff_ms";
- public static final String DEFAULT_THRIFT_BUFFER_SIZE =
"default_thrift_buffer_size";
- public static final String MAX_THRIFT_FRAME_SIZE = "max_thrift_frame_size";
- public static final String ZONE_ID = "zone_id";
- public static final String ENABLE_RPC_COMPRESSION =
"enable_rpc_compression";
- public static final String CONNECTION_TIMEOUT_IN_MS =
"connection_timeout_in_ms";
-
private static final int DEFAULT_BATCH_SIZE = 1024;
+ public static final Option<String> KEY_TIMESTAMP =
Options.key("key_timestamp").stringType().noDefaultValue().withDescription("key
timestamp");
+ public static final Option<String> KEY_DEVICE =
Options.key("key_device").stringType().noDefaultValue().withDescription("key
device");
+ public static final Option<String> KEY_MEASUREMENT_FIELDS =
Options.key("key_measurement_fields").stringType().noDefaultValue().withDescription("key
measurement fields");
+ public static final Option<String> STORAGE_GROUP =
Options.key("storage_group").stringType().noDefaultValue().withDescription("store
group");
+ public static final Option<Integer> BATCH_SIZE =
Options.key("batch_size").intType().defaultValue(DEFAULT_BATCH_SIZE).withDescription("batch
size");
+ public static final Option<String> BATCH_INTERVAL_MS =
Options.key("batch_interval_ms").stringType().noDefaultValue().withDescription("batch
interval ms");
+ public static final Option<Integer> MAX_RETRIES =
Options.key("max_retries").intType().noDefaultValue();
+ public static final Option<String> RETRY_BACKOFF_MULTIPLIER_MS =
Options.key("retry_backoff_multiplier_ms").stringType().noDefaultValue();
+ public static final Option<String> MAX_RETRY_BACKOFF_MS =
Options.key("max_retry_backoff_ms").stringType().noDefaultValue();
Review Comment:
```suggestion
public static final Option<String> MAX_RETRY_BACKOFF_MS =
Options.key("max_retry_backoff_ms"). intType().noDefaultValue();
```
##########
seatunnel-connectors-v2/connector-iotdb/src/main/java/org/apache/seatunnel/connectors/seatunnel/iotdb/config/SourceConfig.java:
##########
@@ -25,78 +28,78 @@
*/
public class SourceConfig {
- public static final String SQL = "sql";
+ public static final Option<String> SQL =
Options.key("sql").stringType().noDefaultValue().withDescription("sql");
/*---------------------- single node configurations
-------------------------*/
/**
* The host of the IotDB server.
*/
- public static final String HOST = "host";
+ public static final Option<String> HOST =
Options.key("host").stringType().noDefaultValue().withDescription("host");
/*
* The port of the IotDB server.
*/
- public static final String PORT = "port";
+ public static final Option<String> PORT =
Options.key("port").stringType().noDefaultValue().withDescription("port");
/*---------------------- multiple node configurations
-------------------------*/
/**
* Username for the source.
*/
- public static final String USERNAME = "username";
+ public static final Option<String> USERNAME =
Options.key("username").stringType().noDefaultValue().withDescription("usernam");
/**
* Password for the source.
*/
- public static final String PASSWORD = "password";
+ public static final Option<String> PASSWORD =
Options.key("password").stringType().noDefaultValue().withDescription("password");
/**
* multiple nodes
*/
- public static final String NODE_URLS = "node_urls";
+ public static final Option<String> NODE_URLS =
Options.key("node_urls").stringType().noDefaultValue().withDescription("node
urls");
/*---------------------- other configurations -------------------------*/
/**
* Fetches the next batch of data from the source.
*/
- public static final String FETCH_SIZE = "fetch_size";
+ public static final Option<String> FETCH_SIZE =
Options.key("fetch_size").stringType().noDefaultValue().withDescription("fetch
size");
Review Comment:
```suggestion
public static final Option<String> FETCH_SIZE =
Options.key("fetch_size").intType().noDefaultValue().withDescription("fetch
size");
```
##########
seatunnel-connectors-v2/connector-iotdb/src/main/java/org/apache/seatunnel/connectors/seatunnel/iotdb/config/SourceConfig.java:
##########
@@ -25,78 +28,78 @@
*/
public class SourceConfig {
- public static final String SQL = "sql";
+ public static final Option<String> SQL =
Options.key("sql").stringType().noDefaultValue().withDescription("sql");
/*---------------------- single node configurations
-------------------------*/
/**
* The host of the IotDB server.
*/
- public static final String HOST = "host";
+ public static final Option<String> HOST =
Options.key("host").stringType().noDefaultValue().withDescription("host");
/*
* The port of the IotDB server.
*/
- public static final String PORT = "port";
+ public static final Option<String> PORT =
Options.key("port").stringType().noDefaultValue().withDescription("port");
/*---------------------- multiple node configurations
-------------------------*/
/**
* Username for the source.
*/
- public static final String USERNAME = "username";
+ public static final Option<String> USERNAME =
Options.key("username").stringType().noDefaultValue().withDescription("usernam");
/**
* Password for the source.
*/
- public static final String PASSWORD = "password";
+ public static final Option<String> PASSWORD =
Options.key("password").stringType().noDefaultValue().withDescription("password");
/**
* multiple nodes
*/
- public static final String NODE_URLS = "node_urls";
+ public static final Option<String> NODE_URLS =
Options.key("node_urls").stringType().noDefaultValue().withDescription("node
urls");
/*---------------------- other configurations -------------------------*/
/**
* Fetches the next batch of data from the source.
*/
- public static final String FETCH_SIZE = "fetch_size";
+ public static final Option<String> FETCH_SIZE =
Options.key("fetch_size").stringType().noDefaultValue().withDescription("fetch
size");
/**
* thrift default buffer size
*/
- public static final String THRIFT_DEFAULT_BUFFER_SIZE =
"thrift_default_buffer_size";
+ public static final Option<Integer> THRIFT_DEFAULT_BUFFER_SIZE =
Options.key("thrift_default_buffer_size").intType().noDefaultValue().withDescription("
default thrift buffer size of iot db ");
/**
* thrift max frame size
*/
- public static final String THRIFT_MAX_FRAME_SIZE = "thrift_max_frame_size";
+ public static final Option<Integer> THRIFT_MAX_FRAME_SIZE =
Options.key("thrift_max_frame_size").intType().noDefaultValue().withDescription("thrift
max frame size of iot db");
/**
* cassandra default buffer size
*/
- public static final String ENABLE_CACHE_LEADER = "enable_cache_leader";
+ public static final Option<String> ENABLE_CACHE_LEADER =
Options.key("enable_cache_leader").stringType().noDefaultValue();
/**
* Version represents the SQL semantic version used by the client, which
is used to be compatible with the SQL semantics of 0.12 when upgrading 0.13.
The possible values are: V_0_12, V_0_13.
*/
- public static final String VERSION = "version";
+ public static final Option<String> VERSION =
Options.key("version").stringType().noDefaultValue();
/**
* Query lower bound of the time range to be read.
*/
- public static final String LOWER_BOUND = "lower_bound";
+ public static final Option<String> LOWER_BOUND =
Options.key("lower_bound").stringType().noDefaultValue();
/**
* Query upper bound of the time range to be read.
*/
- public static final String UPPER_BOUND = "upper_bound";
+ public static final Option<String> UPPER_BOUND =
Options.key("upper_bound").stringType().noDefaultValue();
Review Comment:
```suggestion
public static final Option<String> UPPER_BOUND =
Options.key("upper_bound").longType().noDefaultValue();
```
##########
seatunnel-connectors-v2/connector-iotdb/src/main/java/org/apache/seatunnel/connectors/seatunnel/iotdb/source/IoTDBSourceFactory.java:
##########
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.seatunnel.connectors.seatunnel.iotdb.source;
+
+import static
org.apache.seatunnel.connectors.seatunnel.iotdb.config.CommonConfig.NODE_URLS;
+import static
org.apache.seatunnel.connectors.seatunnel.iotdb.config.CommonConfig.PASSWORD;
+import static
org.apache.seatunnel.connectors.seatunnel.iotdb.config.CommonConfig.USERNAME;
+
+import org.apache.seatunnel.api.configuration.util.OptionRule;
+import org.apache.seatunnel.api.table.factory.Factory;
+import org.apache.seatunnel.api.table.factory.TableSourceFactory;
+import org.apache.seatunnel.connectors.seatunnel.iotdb.config.SourceConfig;
+
+import com.google.auto.service.AutoService;
+
+@AutoService(Factory.class)
+public class IoTDBSourceFactory implements TableSourceFactory{
+ @Override
+ public String factoryIdentifier() {
+ return "IoTDB";
+ }
+
+ @Override
+ public OptionRule optionRule() {
+ return OptionRule.builder()
+ .required(NODE_URLS, USERNAME, PASSWORD,
SourceConfig.SQL).build();
Review Comment:
add all optional keys
##########
seatunnel-connectors-v2/connector-iotdb/src/main/java/org/apache/seatunnel/connectors/seatunnel/iotdb/config/SourceConfig.java:
##########
@@ -25,78 +28,78 @@
*/
public class SourceConfig {
- public static final String SQL = "sql";
+ public static final Option<String> SQL =
Options.key("sql").stringType().noDefaultValue().withDescription("sql");
/*---------------------- single node configurations
-------------------------*/
/**
* The host of the IotDB server.
*/
- public static final String HOST = "host";
+ public static final Option<String> HOST =
Options.key("host").stringType().noDefaultValue().withDescription("host");
/*
* The port of the IotDB server.
*/
- public static final String PORT = "port";
+ public static final Option<String> PORT =
Options.key("port").stringType().noDefaultValue().withDescription("port");
/*---------------------- multiple node configurations
-------------------------*/
/**
* Username for the source.
*/
- public static final String USERNAME = "username";
+ public static final Option<String> USERNAME =
Options.key("username").stringType().noDefaultValue().withDescription("usernam");
/**
* Password for the source.
*/
- public static final String PASSWORD = "password";
+ public static final Option<String> PASSWORD =
Options.key("password").stringType().noDefaultValue().withDescription("password");
/**
* multiple nodes
*/
- public static final String NODE_URLS = "node_urls";
+ public static final Option<String> NODE_URLS =
Options.key("node_urls").stringType().noDefaultValue().withDescription("node
urls");
/*---------------------- other configurations -------------------------*/
/**
* Fetches the next batch of data from the source.
*/
- public static final String FETCH_SIZE = "fetch_size";
+ public static final Option<String> FETCH_SIZE =
Options.key("fetch_size").stringType().noDefaultValue().withDescription("fetch
size");
/**
* thrift default buffer size
*/
- public static final String THRIFT_DEFAULT_BUFFER_SIZE =
"thrift_default_buffer_size";
+ public static final Option<Integer> THRIFT_DEFAULT_BUFFER_SIZE =
Options.key("thrift_default_buffer_size").intType().noDefaultValue().withDescription("
default thrift buffer size of iot db ");
/**
* thrift max frame size
*/
- public static final String THRIFT_MAX_FRAME_SIZE = "thrift_max_frame_size";
+ public static final Option<Integer> THRIFT_MAX_FRAME_SIZE =
Options.key("thrift_max_frame_size").intType().noDefaultValue().withDescription("thrift
max frame size of iot db");
/**
* cassandra default buffer size
*/
- public static final String ENABLE_CACHE_LEADER = "enable_cache_leader";
+ public static final Option<String> ENABLE_CACHE_LEADER =
Options.key("enable_cache_leader").stringType().noDefaultValue();
Review Comment:
```suggestion
public static final Option<String> ENABLE_CACHE_LEADER =
Options.key("enable_cache_leader").booleanType().noDefaultValue();
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]