This is an automated email from the ASF dual-hosted git repository.
kangrong pushed a commit to branch py_cli_performance
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/py_cli_performance by this
push:
new 3ae8054 add python perf comparison
3ae8054 is described below
commit 3ae8054a1f5b64441094e213d6327f9263fbb727
Author: kr11 <3095717866.com>
AuthorDate: Sun Aug 1 23:49:03 2021 +0800
add python perf comparison
---
client-py/tablet_performance_comparison.py | 39 +++++++++++++++++++++++-------
1 file changed, 30 insertions(+), 9 deletions(-)
diff --git a/client-py/tablet_performance_comparison.py
b/client-py/tablet_performance_comparison.py
index afac6d2..d311136 100644
--- a/client-py/tablet_performance_comparison.py
+++ b/client-py/tablet_performance_comparison.py
@@ -24,6 +24,7 @@ from iotdb.utils.Tablet import Tablet
import random
import numpy as np
import time
+import math
def create_open_session():
@@ -52,6 +53,19 @@ def check_count(expect, _session, _sql):
session_data_set.close_operation_handle()
+def check_query_result(expect, _session, _sql):
+ # raise Exception('not implemented')
+ session_data_set = _session.execute_query_statement(_sql)
+ session_data_set.set_fetch_size(1)
+ idx = 0
+ while session_data_set.has_next():
+ line = session_data_set.next()
+ assert str(line) == expect[idx], f"line {idx}: actual {str(line)} !=
expect ({expect[idx]})"
+ idx += 1
+ assert idx == len(expect), f"result rows: actual ({idx}) != expect
({len(expect)})"
+ session_data_set.close_operation_handle()
+
+
def performance_test(data_types=tuple([TSDataType.FLOAT]), use_new=True,
valid_result=False, row=10000, col=2000,
seed=0):
session = create_open_session()
@@ -61,7 +75,7 @@ def performance_test(data_types=tuple([TSDataType.FLOAT]),
use_new=True, valid_r
VALUES_OF_TYPES = {TSDataType.BOOLEAN: True,
TSDataType.DOUBLE: 1.234567,
- TSDataType.FLOAT: 1.2,
+ TSDataType.FLOAT: 1.5,
TSDataType.INT32: 100,
TSDataType.INT64: 123456789098,
TSDataType.TEXT: "test_record"}
@@ -71,9 +85,14 @@ def performance_test(data_types=tuple([TSDataType.FLOAT]),
use_new=True, valid_r
TSDataType.INT32: "i",
TSDataType.INT64: "q",
TSDataType.TEXT: str}
+ MEASUREMENT_OF_TYPES = {TSDataType.BOOLEAN: "s0",
+ TSDataType.DOUBLE: "s1",
+ TSDataType.FLOAT: "s2",
+ TSDataType.INT32: "s3",
+ TSDataType.INT64: "s4",
+ TSDataType.TEXT: "s5"}
- type_len = len(data_types)
- measurements_ = ["s" + str(i) for i in range(type_len)]
+ measurements_ = [MEASUREMENT_OF_TYPES[data_type] for data_type in
data_types]
for i in range(0, col):
device_id = "root.sg%d.%d" % (i % 8, i)
@@ -101,11 +120,11 @@ def
performance_test(data_types=tuple([TSDataType.FLOAT]), use_new=True, valid_r
insert_cost += time.perf_counter() - cost_st
if valid_result:
# query total line
- print("execute query for validation")
+ # print("execute query for validation")
check_count(row, session, "select count(*) from %s" % device_id)
- # query the first
- check_query_result(, session, "select count(*) from %s" %
device_id)
- # query the last
+ expect_values = "\t\t".join([str(VALUES_OF_TYPES[data_type]) for
data_type in data_types])
+ expect = [str(e) + "\t\t" + expect_values for e in range(row)]
+ check_query_result(expect, session, f"select
{','.join(measurements_)} from {device_id}")
print("query validation have passed")
session.close()
@@ -117,10 +136,12 @@ def
performance_test(data_types=tuple([TSDataType.FLOAT]), use_new=True, valid_r
valid_result = True
-performance_test(data_types=tuple([TSDataType.FLOAT]), use_new=False,
valid_result=valid_result, row=3, col=1)
+performance_test(data_types=tuple([TSDataType.FLOAT]), use_new=False,
valid_result=valid_result, row=3, col=2)
# performance_test(data_types=tuple([TSDataType.FLOAT]), use_new=True,
valid_result=valid_result)
-# performance_test(data_types=tuple([TSDataType.BOOLEAN, TSDataType.FLOAT,
TSDataType.DOUBLE, TSDataType.INT32, TSDataType.INT64]), use_new=False,
valid_result=valid_result)
+performance_test(
+ data_types=tuple([TSDataType.BOOLEAN, TSDataType.FLOAT, TSDataType.DOUBLE,
TSDataType.INT32, TSDataType.INT64]),
+ use_new=False, valid_result=valid_result, row=10, col=10)
# performance_test(data_types=tuple([TSDataType.BOOLEAN, TSDataType.FLOAT,
TSDataType.DOUBLE, TSDataType.INT32, TSDataType.INT64]), use_new=True,
valid_result=valid_result)
#
# performance_test(data_types=tuple([TSDataType.BOOLEAN, TSDataType.FLOAT,
TSDataType.DOUBLE, TSDataType.INT32, TSDataType.INT64, TSDataType.TEXT]),
use_new=False, valid_result=valid_result)