blob: bd147ffdb669401fb460b8bb8b613ee59d310689 [file] [log] [blame] [view]
<!--
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.
-->
# 快速上手 - Python
## 依赖
如果需要在在本地编译,依赖如下所示:
- CMake >=3.11
- Maven >=3.9.6
- GCC >=4.8.5
- Make >=4.3
- cython >= 3.0.10
- numpy >= 1.26.4
- pandas >= 2.2.2
- setuptools >= 70.0.0
如果使用 Pip 在线安装 TsFile,依赖包如下:
numpy >= 1.26.4
pandas >= 2.2.2
## 安装
### 使用 PIP 进行在线安装
使用pip 指令来在线安装 TsFile 包
```bash
pip install tsfile
```
支持的架构平台如下:
| Platform | python |
| ------------- | -------------------------------- |
| Linux_x86_64 | py39, py310, py311, py312, py313 |
| Linus_aarch64 | py39, py310, py311, py312, py313 |
| MacOS_arm64 | py39, py310, py311, py312, py313 |
| MacOS_X86_64 | py39, py310, py311, py312, py313 |
| Win_amd64 | py39, py310, py311, py312, py313 |
或者直接下载 wheel 文件安装:https://pypi.org/project/tsfile/#files
### 在本地进行编译
从git克隆源代码:
```shell
git clone https://github.com/apache/tsfile.git
```
在 TsFile 根目录下执行 maven 编译:
```shell
mvn clean install -P with-python -DskipTests
```
如果没有安装 maven, 你可以执行下面的指令完成编译:
在 Linux 或 Macos上:
```shell
mvnw clean install -P with-python -DskipTests
```
在 Windows 上:
```shell
mvnw.cmd clean install -P with-python -DskipTests
```
#### 目录结构
• **wheel**: wheel文件位于 `tsfile/python/dist`, 你可以使用 pip install 命令来进行本地安装。
### 安装到本地
你可以执行 `pip install`命令来安装编译得到的 tsfile包(假设他的名字是 tsfile.wheel)
```bash
pip install tsfile.wheel
```
## 写入示例
```Python
import os
from tsfile import *
table_data_dir = os.path.join(os.path.dirname(__file__), "table_data.tsfile")
if os.path.exists(table_data_dir):
os.remove(table_data_dir)
column1 = ColumnSchema("id", TSDataType.STRING, ColumnCategory.TAG)
column2 = ColumnSchema("id2", TSDataType.STRING, ColumnCategory.TAG)
column3 = ColumnSchema("value", TSDataType.DOUBLE, ColumnCategory.FIELD)
table_schema = TableSchema("test_table", columns=[column1, column2, column3])
### Free resource automatically
with TsFileTableWriter(table_data_dir, table_schema) as writer:
tablet_row_num = 100
tablet = Tablet(
["id", "id2", "value"],
[TSDataType.STRING, TSDataType.STRING, TSDataType.DOUBLE],
tablet_row_num)
for i in range(tablet_row_num):
tablet.add_timestamp(i, i * 10)
tablet.add_value_by_name("id", i, "test1")
tablet.add_value_by_name("id2", i, "test" + str(i))
tablet.add_value_by_index(2, i, i * 100.2)
writer.write_table(tablet)
```
## 读取示例
```Python
import os
from tsfile import *
table_data_dir = os.path.join(os.path.dirname(__file__), "table_data.tsfile")
### Free resource automatically
with TsFileReader(table_data_dir) as reader:
print(reader.get_all_table_schemas())
with reader.query_table("test_table", ["id2", "value"], 0, 50) as result:
print(result.get_metadata())
while result.next():
print(result.get_value_by_name("id2"))
print(result.get_value_by_name("value"))
print(result.read_data_frame())
```