This is an automated email from the ASF dual-hosted git repository. jiangtian pushed a commit to branch py_client in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
commit cbcfd4606cdf8d4d78418fbb33f875006e06b873 Author: jt <[email protected]> AuthorDate: Wed Sep 25 21:23:46 2019 +0800 temp save --- .gitignore | 3 +- client-py/compile.bat | 9 ++++++ client-py/src/client_example.py | 63 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 74 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 6691ce4..18a7508 100644 --- a/.gitignore +++ b/.gitignore @@ -85,4 +85,5 @@ grafana/data/test.csv tsfile/src/test/resources/*.ts ### Apache release ### -local-snapshots-dir/ \ No newline at end of file +local-snapshots-dir/ +venv/ diff --git a/client-py/compile.bat b/client-py/compile.bat new file mode 100644 index 0000000..19cea30 --- /dev/null +++ b/client-py/compile.bat @@ -0,0 +1,9 @@ +@echo off +set THRIFT_EXE=C:\bin\thrift-0.12.0.exe +set BAT_DIR=%~dp0 +set THRIFT_SCRIPT=%BAT_DIR%..\service-rpc\src\main\thrift\rpc.thrift +set THRIFT_OUT=%BAT_DIR%target + +rm -rf %THRIFT_OUT% +mkdir %THRIFT_OUT% +%THRIFT_EXE% -gen py -out %THRIFT_OUT% %THRIFT_SCRIPT% diff --git a/client-py/src/client_example.py b/client-py/src/client_example.py new file mode 100644 index 0000000..0ac43d8 --- /dev/null +++ b/client-py/src/client_example.py @@ -0,0 +1,63 @@ +# 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. +# + +import sys, struct +sys.path.append("../target") + +from thrift.protocol import TBinaryProtocol +from thrift.transport import TSocket, TTransport + +from rpc.TSIService import Client, TSCreateTimeseriesReq, TSInsertionReq, TSBatchInsertionReq, TSExecuteStatementReq,\ + TS_SessionHandle, TSHandleIdentifier, TSOpenSessionReq, TSQueryDataSet +if __name__ == '__main__': + # Make socket + transport = TSocket.TSocket("localhost", "6667") + + # Buffering is critical. Raw sockets are very slow + transport = TTransport.TBufferedTransport(transport) + + # Wrap in a protocol + protocol = TBinaryProtocol.TBinaryProtocol(transport) + + # Create a client to use the protocol encoder + client = Client(protocol) + + # Connect! + transport.open() + + client.openSession(TSOpenSessionReq(username='root', password='root')) + + handle = TS_SessionHandle(TSHandleIdentifier(b'1', b'1')) + + client.setStorageGroup("root.group1") + client.createTimeseries(TSCreateTimeseriesReq("root.group1.s1", 2, 0, 0)) + client.createTimeseries(TSCreateTimeseriesReq("root.group1.s2", 2, 0, 0)) + client.createTimeseries(TSCreateTimeseriesReq("root.group1.s3", 2, 0, 0)) + + client.insertRow(TSInsertionReq("root.group1", ["s1", "s2", "s3"], ["1", "11", "111"], 1, 1)) + + values = bytearray() + times = bytearray() + values.extend(struct.pack('<qqqqqqqqq', 2, 3, 4, 22, 33, 44, 222, 333, 444)) + times.extend(struct.pack('<qqq', 2, 3, 4)) + client.insertBatch(TSBatchInsertionReq("root.group1", ["s1", "s2", "s3"], values, times, [2, 2, 2], 3)) + + rst = client.executeQueryStatement(TSExecuteStatementReq(handle, "SELECT * FROM root.group1")) + print rst + +
