You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ha...@apache.org on 2023/03/22 03:03:34 UTC
[iotdb] 01/01: Remove redundent template example in Python example
This is an automated email from the ASF dual-hosted git repository.
haonan pushed a commit to branch opti_python_example
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit d0fffcd14f8779df6c21861308eb18bba112e8aa
Author: HTHou <hh...@outlook.com>
AuthorDate: Wed Mar 22 11:02:23 2023 +0800
Remove redundent template example in Python example
---
client-py/SessionExample.py | 60 +---
client-py/iotdb/Session.py | 331 +++++++++++++--------
.../UserGuide/API/Programming-Python-Native-API.md | 13 +-
.../UserGuide/API/Programming-Python-Native-API.md | 15 +-
4 files changed, 224 insertions(+), 195 deletions(-)
diff --git a/client-py/SessionExample.py b/client-py/SessionExample.py
index c71ecf9273..c0ede83b2a 100644
--- a/client-py/SessionExample.py
+++ b/client-py/SessionExample.py
@@ -365,7 +365,7 @@ with session.execute_last_data_query(
# delete database
session.delete_storage_group("root.sg_test_01")
-# create measurement node template
+# create template
template = Template(name="template_python", share_time=False)
m_node_1 = MeasurementNode(
name="s1",
@@ -391,64 +391,6 @@ template.add_template(m_node_3)
session.create_schema_template(template)
print("create template success template_python")
-# create internal node template
-template_name = "treeTemplate_python"
-template = Template(name=template_name, share_time=True)
-i_node_gps = InternalNode(name="GPS", share_time=False)
-i_node_v = InternalNode(name="vehicle", share_time=True)
-m_node_x = MeasurementNode("x", TSDataType.FLOAT, TSEncoding.RLE, Compressor.SNAPPY)
-
-i_node_gps.add_child(m_node_x)
-i_node_v.add_child(m_node_x)
-template.add_template(i_node_gps)
-template.add_template(i_node_v)
-template.add_template(m_node_x)
-
-session.create_schema_template(template)
-print("create template success treeTemplate_python}")
-
-print(session.is_measurement_in_template(template_name, "GPS"))
-print(session.is_measurement_in_template(template_name, "GPS.x"))
-print(session.show_all_templates())
-
-# # append schema template
-data_types = [TSDataType.FLOAT, TSDataType.FLOAT, TSDataType.DOUBLE]
-encoding_list = [TSEncoding.RLE, TSEncoding.RLE, TSEncoding.GORILLA]
-compressor_list = [Compressor.SNAPPY, Compressor.SNAPPY, Compressor.LZ4]
-
-measurements_aligned_path = ["aligned.s1", "aligned.s2", "aligned.s3"]
-session.add_measurements_in_template(
- template_name,
- measurements_aligned_path,
- data_types,
- encoding_list,
- compressor_list,
- is_aligned=True,
-)
-# session.drop_schema_template("add_template_python")
-measurements_aligned_path = ["unaligned.s1", "unaligned.s2", "unaligned.s3"]
-session.add_measurements_in_template(
- template_name,
- measurements_aligned_path,
- data_types,
- encoding_list,
- compressor_list,
- is_aligned=False,
-)
-session.delete_node_in_template(template_name, "aligned.s1")
-print(session.count_measurements_in_template(template_name))
-print(session.is_path_exist_in_template(template_name, "aligned.s1"))
-print(session.is_path_exist_in_template(template_name, "aligned.s2"))
-
-session.set_schema_template(template_name, "root.python.set")
-print(session.show_paths_template_using_on(template_name))
-print(session.show_paths_template_set_on(template_name))
-session.unset_schema_template(template_name, "root.python.set")
-
-# drop template
-session.drop_schema_template("template_python")
-session.drop_schema_template(template_name)
-print("drop template success, template_python and treeTemplate_python")
# close session connection.
session.close()
diff --git a/client-py/iotdb/Session.py b/client-py/iotdb/Session.py
index 435e774b2a..02a64fab86 100644
--- a/client-py/iotdb/Session.py
+++ b/client-py/iotdb/Session.py
@@ -1205,6 +1205,30 @@ class Session(object):
else:
raise e
+ def execute_statement(self, sql: str, timeout=0):
+ request = TSExecuteStatementReq(
+ self.__session_id, sql, self.__statement_id, timeout
+ )
+ try:
+ resp = self.__client.executeStatement(request)
+ status = resp.status
+ return Session.verify_success(status)
+ except TTransport.TException as e:
+ if self.reconnect():
+ try:
+ request.sessionId = self.__session_id
+ request.statementId = self.__statement_id
+ resp = self.__client.executeStatement(request)
+ status = resp.status
+ return Session.verify_success(status)
+ except TTransport.TException as e1:
+ logger.exception(
+ "execution of non-query statement fails because: ", e1
+ )
+ raise e1
+ else:
+ raise e
+
@staticmethod
def value_to_bytes(data_types, values):
format_str_list = [">"]
@@ -1563,13 +1587,20 @@ class Session(object):
request = TSCreateSchemaTemplateReq(
self.__session_id, template.get_name(), bytes_array
)
- status = self.__client.createSchemaTemplate(request)
- logger.debug(
- "create one template {} template name: {}".format(
- self.__session_id, template.get_name()
- )
- )
- return Session.verify_success(status)
+ try:
+ return Session.verify_success(self.__client.createSchemaTemplate(request))
+ except TTransport.TException as e:
+ if self.reconnect():
+ try:
+ request.sessionId = self.__session_id
+ return Session.verify_success(
+ self.__client.createSchemaTemplate(request)
+ )
+ except TTransport.TException as e1:
+ logger.exception("create template fails because: ", e1)
+ raise e1
+ else:
+ raise e
def drop_schema_template(self, template_name: str):
"""
@@ -1577,44 +1608,20 @@ class Session(object):
:param template_name: template name
"""
request = TSDropSchemaTemplateReq(self.__session_id, template_name)
- status = self.__client.dropSchemaTemplate(request)
- logger.debug(
- "drop one template {} template name: {}".format(
- self.__session_id, template_name
- )
- )
- return Session.verify_success(status)
-
- def execute_statement(self, sql: str, timeout=0):
- request = TSExecuteStatementReq(
- self.__session_id, sql, self.__statement_id, self.__fetch_size, timeout
- )
try:
- resp = self.__client.executeStatement(request)
- status = resp.status
- logger.debug("execute statement {} message: {}".format(sql, status.message))
- if Session.verify_success(status) == 0:
- if resp.columns:
- return SessionDataSet(
- sql,
- resp.columns,
- resp.dataTypeList,
- resp.columnNameIndexMap,
- resp.queryId,
- self.__client,
- self.__statement_id,
- self.__session_id,
- resp.queryDataSet,
- resp.ignoreTimeStamp,
+ return Session.verify_success(self.__client.dropSchemaTemplate(request))
+ except TTransport.TException as e:
+ if self.reconnect():
+ try:
+ request.sessionId = self.__session_id
+ return Session.verify_success(
+ self.__client.dropSchemaTemplate(request)
)
- else:
- return None
+ except TTransport.TException as e1:
+ logger.exception("drop template fails because: ", e1)
+ raise e1
else:
- raise RuntimeError(
- "execution of statement fails because: " + status.message
- )
- except TTransport.TException as e:
- raise RuntimeError("execution of statement fails because: ", e)
+ raise e
def add_measurements_in_template(
self,
@@ -1643,13 +1650,20 @@ class Session(object):
list(map(lambda x: x.value, encodings)),
list(map(lambda x: x.value, compressors)),
)
- status = self.__client.appendSchemaTemplate(request)
- logger.debug(
- "append unaligned template {} template name: {}".format(
- self.__session_id, template_name
- )
- )
- return Session.verify_success(status)
+ try:
+ return Session.verify_success(self.__client.appendSchemaTemplate(request))
+ except TTransport.TException as e:
+ if self.reconnect():
+ try:
+ request.sessionId = self.__session_id
+ return Session.verify_success(
+ self.__client.appendSchemaTemplate(request)
+ )
+ except TTransport.TException as e1:
+ logger.exception("append template fails because: ", e1)
+ raise e1
+ else:
+ raise e
def delete_node_in_template(self, template_name: str, path: str):
"""
@@ -1658,13 +1672,20 @@ class Session(object):
:param path: measurements path
"""
request = TSPruneSchemaTemplateReq(self.__session_id, template_name, path)
- status = self.__client.pruneSchemaTemplate(request)
- logger.debug(
- "append unaligned template {} template name: {}".format(
- self.__session_id, template_name
- )
- )
- return Session.verify_success(status)
+ try:
+ return Session.verify_success(self.__client.pruneSchemaTemplate(request))
+ except TTransport.TException as e:
+ if self.reconnect():
+ try:
+ request.sessionId = self.__session_id
+ return Session.verify_success(
+ self.__client.pruneSchemaTemplate(request)
+ )
+ except TTransport.TException as e1:
+ logger.exception("prune template fails because: ", e1)
+ raise e1
+ else:
+ raise e
def set_schema_template(self, template_name, prefix_path):
"""
@@ -1673,13 +1694,20 @@ class Session(object):
:param prefix_path: prefix path
"""
request = TSSetSchemaTemplateReq(self.__session_id, template_name, prefix_path)
- status = self.__client.setSchemaTemplate(request)
- logger.debug(
- "set schema template to path{} template name: {}, path:{}".format(
- self.__session_id, template_name, prefix_path
- )
- )
- return Session.verify_success(status)
+ try:
+ return Session.verify_success(self.__client.setSchemaTemplate(request))
+ except TTransport.TException as e:
+ if self.reconnect():
+ try:
+ request.sessionId = self.__session_id
+ return Session.verify_success(
+ self.__client.setSchemaTemplate(request)
+ )
+ except TTransport.TException as e1:
+ logger.exception("set template fails because: ", e1)
+ raise e1
+ else:
+ raise e
def unset_schema_template(self, template_name, prefix_path):
"""
@@ -1691,13 +1719,20 @@ class Session(object):
request = TSUnsetSchemaTemplateReq(
self.__session_id, prefix_path, template_name
)
- status = self.__client.unsetSchemaTemplate(request)
- logger.debug(
- "set schema template to path{} template name: {}, path:{}".format(
- self.__session_id, template_name, prefix_path
- )
- )
- return Session.verify_success(status)
+ try:
+ return Session.verify_success(self.__client.unsetSchemaTemplate(request))
+ except TTransport.TException as e:
+ if self.reconnect():
+ try:
+ request.sessionId = self.__session_id
+ return Session.verify_success(
+ self.__client.unsetSchemaTemplate(request)
+ )
+ except TTransport.TException as e1:
+ logger.exception("unset template fails because: ", e1)
+ raise e1
+ else:
+ raise e
def count_measurements_in_template(self, template_name: str):
"""
@@ -1709,13 +1744,22 @@ class Session(object):
template_name,
TemplateQueryType.COUNT_MEASUREMENTS.value,
)
- response = self.__client.querySchemaTemplate(request)
- logger.debug(
- "count measurements template {}, template name is {}, count is {}".format(
- self.__session_id, template_name, response.measurements
- )
- )
- return response.count
+ try:
+ response = self.__client.querySchemaTemplate(request)
+ return response.count
+ except TTransport.TException as e:
+ if self.reconnect():
+ try:
+ request.sessionId = self.__session_id
+ response = self.__client.querySchemaTemplate(request)
+ return response.count
+ except TTransport.TException as e1:
+ logger.exception(
+ "count measurements in template fails because: ", e1
+ )
+ raise e1
+ else:
+ raise e
def is_measurement_in_template(self, template_name: str, path: str):
"""
@@ -1729,13 +1773,23 @@ class Session(object):
TemplateQueryType.IS_MEASUREMENT.value,
path,
)
- response = self.__client.querySchemaTemplate(request)
- logger.debug(
- "judge the path is measurement or not in template {}, template name is {}, result is {}".format(
- self.__session_id, template_name, response.result
- )
- )
- return response.result
+ try:
+ response = self.__client.querySchemaTemplate(request)
+ return response.result
+ except TTransport.TException as e:
+ if self.reconnect():
+ try:
+ request.sessionId = self.__session_id
+ response = self.__client.querySchemaTemplate(request)
+ return response.result
+ except TTransport.TException as e1:
+ logger.exception(
+ "judge the path is measurement or not in template fails because: ",
+ e1,
+ )
+ raise e1
+ else:
+ raise e
def is_path_exist_in_template(self, template_name: str, path: str):
"""
@@ -1746,13 +1800,22 @@ class Session(object):
request = TSQueryTemplateReq(
self.__session_id, template_name, TemplateQueryType.PATH_EXIST.value, path
)
- response = self.__client.querySchemaTemplate(request)
- logger.debug(
- "judge the path is in template or not {}, template name is {}, result is {}".format(
- self.__session_id, template_name, response.result
- )
- )
- return response.result
+ try:
+ response = self.__client.querySchemaTemplate(request)
+ return response.result
+ except TTransport.TException as e:
+ if self.reconnect():
+ try:
+ request.sessionId = self.__session_id
+ response = self.__client.querySchemaTemplate(request)
+ return response.result
+ except TTransport.TException as e1:
+ logger.exception(
+ "judge the path is in template or not fails because: ", e1
+ )
+ raise e1
+ else:
+ raise e
def show_measurements_in_template(self, template_name: str, pattern: str = ""):
"""
@@ -1766,13 +1829,22 @@ class Session(object):
TemplateQueryType.SHOW_MEASUREMENTS.value,
pattern,
)
- response = self.__client.querySchemaTemplate(request)
- logger.debug(
- "show measurements in template {}, template name is {}, result is {}".format(
- self.__session_id, template_name, response.measurements
- )
- )
- return response.measurements
+ try:
+ response = self.__client.querySchemaTemplate(request)
+ return response.measurements
+ except TTransport.TException as e:
+ if self.reconnect():
+ try:
+ request.sessionId = self.__session_id
+ response = self.__client.querySchemaTemplate(request)
+ return response.measurements
+ except TTransport.TException as e1:
+ logger.exception(
+ "show measurements in template fails because: ", e1
+ )
+ raise e1
+ else:
+ raise e
def show_all_templates(self):
"""
@@ -1783,13 +1855,20 @@ class Session(object):
"",
TemplateQueryType.SHOW_TEMPLATES.value,
)
- response = self.__client.querySchemaTemplate(request)
- logger.debug(
- "show all template {}, measurements is {}".format(
- self.__session_id, response.measurements
- )
- )
- return response.measurements
+ try:
+ response = self.__client.querySchemaTemplate(request)
+ return response.measurements
+ except TTransport.TException as e:
+ if self.reconnect():
+ try:
+ request.sessionId = self.__session_id
+ response = self.__client.querySchemaTemplate(request)
+ return response.measurements
+ except TTransport.TException as e1:
+ logger.exception("show all template fails because: ", e1)
+ raise e1
+ else:
+ raise e
def show_paths_template_set_on(self, template_name):
"""
@@ -1799,13 +1878,20 @@ class Session(object):
request = TSQueryTemplateReq(
self.__session_id, template_name, TemplateQueryType.SHOW_SET_TEMPLATES.value
)
- response = self.__client.querySchemaTemplate(request)
- logger.debug(
- "show paths template set {}, on {}".format(
- self.__session_id, response.measurements
- )
- )
- return response.measurements
+ try:
+ response = self.__client.querySchemaTemplate(request)
+ return response.measurements
+ except TTransport.TException as e:
+ if self.reconnect():
+ try:
+ request.sessionId = self.__session_id
+ response = self.__client.querySchemaTemplate(request)
+ return response.measurements
+ except TTransport.TException as e1:
+ logger.exception("show paths template set on fails because: ", e1)
+ raise e1
+ else:
+ raise e
def show_paths_template_using_on(self, template_name):
"""
@@ -1817,10 +1903,17 @@ class Session(object):
template_name,
TemplateQueryType.SHOW_USING_TEMPLATES.value,
)
- response = self.__client.querySchemaTemplate(request)
- logger.debug(
- "show paths template using {}, on {}".format(
- self.__session_id, response.measurements
- )
- )
- return response.measurements
+ try:
+ response = self.__client.querySchemaTemplate(request)
+ return response.measurements
+ except TTransport.TException as e:
+ if self.reconnect():
+ try:
+ request.sessionId = self.__session_id
+ response = self.__client.querySchemaTemplate(request)
+ return response.measurements
+ except TTransport.TException as e1:
+ logger.exception("show paths template using on fails because: ", e1)
+ raise e1
+ else:
+ raise e
diff --git a/docs/UserGuide/API/Programming-Python-Native-API.md b/docs/UserGuide/API/Programming-Python-Native-API.md
index f42b731302..3eafe54b34 100644
--- a/docs/UserGuide/API/Programming-Python-Native-API.md
+++ b/docs/UserGuide/API/Programming-Python-Native-API.md
@@ -316,22 +316,19 @@ session.execute_statement(sql)
#### Create Schema Template
The step for creating a metadata template is as follows
1. Create the template class
-2. Adding child Node,InternalNode and MeasurementNode can be chose
+2. Adding MeasurementNode
3. Execute create schema template function
```python
template = Template(name=template_name, share_time=True)
-i_node_gps = InternalNode(name="GPS", share_time=False)
-i_node_v = InternalNode(name="vehicle", share_time=True)
m_node_x = MeasurementNode("x", TSDataType.FLOAT, TSEncoding.RLE, Compressor.SNAPPY)
+m_node_y = MeasurementNode("y", TSDataType.FLOAT, TSEncoding.RLE, Compressor.SNAPPY)
+m_node_z = MeasurementNode("z", TSDataType.FLOAT, TSEncoding.RLE, Compressor.SNAPPY)
-i_node_gps.add_child(m_node_x)
-i_node_v.add_child(m_node_x)
-
-template.add_template(i_node_gps)
-template.add_template(i_node_v)
template.add_template(m_node_x)
+template.add_template(m_node_y)
+template.add_template(m_node_z)
session.create_schema_template(template)
```
diff --git a/docs/zh/UserGuide/API/Programming-Python-Native-API.md b/docs/zh/UserGuide/API/Programming-Python-Native-API.md
index da9b4acf1a..9f31cd832c 100644
--- a/docs/zh/UserGuide/API/Programming-Python-Native-API.md
+++ b/docs/zh/UserGuide/API/Programming-Python-Native-API.md
@@ -310,23 +310,20 @@ session.execute_statement(sql)
#### 元数据模版接口
##### 构建元数据模版
-1. 首先构建Template类
-2. 添加子节点,可以选择InternalNode或MeasurementNode
+1. 首先构建 Template 类
+2. 添加子节点 MeasurementNode
3. 调用创建元数据模版接口
```python
template = Template(name=template_name, share_time=True)
-i_node_gps = InternalNode(name="GPS", share_time=False)
-i_node_v = InternalNode(name="vehicle", share_time=True)
m_node_x = MeasurementNode("x", TSDataType.FLOAT, TSEncoding.RLE, Compressor.SNAPPY)
+m_node_y = MeasurementNode("y", TSDataType.FLOAT, TSEncoding.RLE, Compressor.SNAPPY)
+m_node_z = MeasurementNode("z", TSDataType.FLOAT, TSEncoding.RLE, Compressor.SNAPPY)
-i_node_gps.add_child(m_node_x)
-i_node_v.add_child(m_node_x)
-
-template.add_template(i_node_gps)
-template.add_template(i_node_v)
template.add_template(m_node_x)
+template.add_template(m_node_y)
+template.add_template(m_node_z)
session.create_schema_template(template)
```