user-guide

GreptimeDB 是什么

GreptimeDB 是一款用 Rust 语言编写的时序数据库,具有分布式、开源、云原生和兼容性强等特点。它可以在帮助企业实时读写、处理和分析时序数据的同时,降低长期存储的成本。

为了让新用户快速上手使用 GreptimeDB,我们准备了超级详细的 GreptimeDB 新用户使用指南,旨在帮助大家快速掌握我们产品的使用方法。

我们将根据不同的使用场景进行分类,提供详细的安装和使用步骤,制作成一系列使用攻略让用户在特定的应用环境中,更好地运用我们的产品

让我们一起探索 GreptimeDB 的无限可能吧!

使用 GreptimeDB 来查询分析外部数据

只有当数据被用起来,才能真正体现其价值,GreptimeDB 通过支持 SQL/Python 脚本来强化数据分析的能力。

假设你有一份 CSV 格式的数据文件,如何利用 GreptimeDB 的分析能力呢?GreptimeDB 支持两种方式来快速查询分析外部数据,接下来会逐一说明。

为了方便说明,我们先假设一个场景,这个场景来自于 Kaggle 公开数据集的一段内容:

你正在与政府合作,愿景是打造一个数字化和智能化城市,以提高民众服务的效率。而政府目前面临的问题之一是严重的交通堵塞,你作为一位数据科学家,致力于更好地管理城市交通,将为未来基础设施规划提供意见。政府希望通过构建强大的交通系统来应对高峰期的交通问题,他们想要了解城市每个交叉口的交通模式,并给你提供了一份过往数据,而你就需要建立一套模型进行分析预测。

前期准备

如果你的环境中还没有安装 GreptimeDB,那接下来的内容,会告诉大家如何快速安装启动 GreptimeDB;如果你本地已经安装并启动了 GreptimeDB,可以进入到 数据准备 章节。

环境准备

  • 安装 GreptimeDB(这里以 Docker 的方式作为例子)

在电脑上打开终端,输入如下代码(下同)

docker pull greptime/greptimedb:latest

更多安装方式,请前往 Greptime 官网Getting Started 文档中查看。

  • 启动 GreptimeDB
docker run -p 4000-4004:4000-4004 \
-p 4242:4242 -v "$(pwd)/greptimedb:/tmp/greptimedb" \
--name greptime --rm greptime/greptimedb standalone start \
--http-addr 0.0.0.0:4000 \
--rpc-addr 0.0.0.0:4001 \
--mysql-addr 0.0.0.0:4002 \
--postgres-addr 0.0.0.0:4003 \
--prom-addr 0.0.0.0:4004 \
--opentsdb-addr 0.0.0.0:4242
  • 通过 MySQL 或者其他兼容客户端连接 GreptimeDB

温馨提示:电脑上需要预先下载好 MySQLPostgreSQL 客户端才能操作使用哦~

mysql -h 127.0.0.1 -P 4002

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.1.10-alpha-msql-proxy Greptime

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show tables;
+---------+
| Tables  |
+---------+
| numbers |
| scripts |
+---------+
2 rows in set (0.01 sec) 

数据准备

目前 GreptimeDB 支持 CSV/JSON/Parquet 格式文件的导入。本文在公开的数据集网站 Kaggle 上下载了一份 IoT 数据,主要是模拟了某个城市四个交通路口的车流量情况,以下是部分数据:

DateTime,Junction,Vehicles,ID
2015-11-01 00:00:00,1,15,20151101001
2015-11-01 01:00:00,1,13,20151101011
2015-11-01 02:00:00,1,10,20151101021
2015-11-01 03:00:00,1,7,20151101031
2015-11-01 04:00:00,1,9,20151101041
2015-11-01 05:00:00,1,6,20151101051
2015-11-01 06:00:00,1,9,20151101061
2015-11-01 07:00:00,1,8,20151101071
2015-11-01 08:00:00,1,11,20151101081

在准备数据的时候,要留意一下,数据表头的字段名不要和数据库的关键词重复了,比如上面的数据表格里面 DateTime 就是 DB 关键词,我们在导入之前需要将它改掉, 可以修改为 TS。

示例中,我们是通过 docker 启动了 GreptimeDB,并做了文件映射 -v "$(pwd)/greptimedb:/tmp/greptimedb" ,所以需要将准备好的数据文件复制到对应的目录中,你可以根据自己的环境来准备数据:

copy /<path_of_data_folder>/train_ML_IOT.csv $(pwd)/greptimedb/

查询分析外部数据

通过外部表查询数据

GreptimeDB 支持直接查询分析外部的数据,操作非常简单。

  • 创建外部表
mysql> CREATE EXTERNAL TABLE  train_ML_IOT_sample WITH (LOCATION='/tmp/greptimedb/train_ML_IOT.csv',FORMAT='csv');
Query OK, 0 rows affected (0.08 sec)
  • 查询分析

这里进行简单举例

mysql> SELECT * FROM "train_ML_IOT_sample" WHERE "Junction" = 1 LIMIT 10;
+---------------------+----------+----------+-------------+
| TS                  | Junction | Vehicles | ID          |
+---------------------+----------+----------+-------------+
| 2015-11-01 00:00:00 |        1 |       15 | 20151101001 |
| 2015-11-01 01:00:00 |        1 |       13 | 20151101011 |
| 2015-11-01 02:00:00 |        1 |       10 | 20151101021 |
| 2015-11-01 03:00:00 |        1 |        7 | 20151101031 |
| 2015-11-01 04:00:00 |        1 |        9 | 20151101041 |
| 2015-11-01 05:00:00 |        1 |        6 | 20151101051 |
| 2015-11-01 06:00:00 |        1 |        9 | 20151101061 |
| 2015-11-01 07:00:00 |        1 |        8 | 20151101071 |
| 2015-11-01 08:00:00 |        1 |       11 | 20151101081 |
| 2015-11-01 09:00:00 |        1 |       12 | 20151101091 |
+---------------------+----------+----------+-------------+
10 rows in set (0.02 sec)

这种方式数据并不会真正导入到 GreptimeDB 中,但依然可以利用到 GreptimeDB 的分析能力。

通过导入外部数据进行查询

如果数据量非常大,直接查询外部表的性能可能会不佳,可以通过下面方式将数据导入到 GreptimeDB 中再进行分析。

  • 创建表

我们需要提前为要导入的数据创建 table, 包括字段、类型和可能查询会用到的索引等等,假设上述的数据中有的查询场景可能会需要按时间查看不同路口的车辆情况,那就需要对 TSJunction 建索引。对于 GreptimeDB 而言,TS 字段往往作为 Time index,而 Junction 是熟知的 Primary Key。

小技巧
对于建表过程,可以通过建立外部表的方式,快速获取表结构/表结构(Schema),具体方法如下:

mysql> CREATE EXTERNAL TABLE  train_ML_IOT_sample WITH (LOCATION='/tmp/greptimedb/train_ML_IOT.csv',FORMAT='csv');
Query OK, 0 rows affected (0.08 sec)

mysql> SHOW CREATE TABLE train_ML_IOT_sample;
+---------------------+------------------------------------------------------------+
| Table               | Create Table                                               |
+---------------------+------------------------------------------------------------+
| train_ML_IOT_sample | CREATE EXTERNAL TABLE IF NOT EXISTS train_ML_IOT_sample (
  TS TIMESTAMP(0) NULL,
  Junction BIGINT NULL,
  Vehicles BIGINT NULL,
  ID BIGINT NULL,
)
ENGINE=file
WITH(
  format = 'csv',
  location = '/tmp/greptimedb/train_ML_IOT.csv'
) |
+---------------------+------------------------------------------------------------+
通过上面的结果,我们就能看到 DB 识别到的字段类型,剩下就是 Copy/Paste  字段名字和类型,并执行下面的代码创建内部表:
CREATE TABLE IF NOT EXISTS train_ML_IOT (
  TS TIMESTAMP(0) NULL,
  Junction BIGINT NULL,
  Vehicles BIGINT NULL,
  ID BIGINT NULL,
  TIME INDEX (TS),
  PRIMARY KEY (Junction)
);
  • 导入数据
    GreptimeDB 支持 COPY 语法,可以导入导出数据,具体可参考: https://docs.greptime.com/reference/sql/copy
mysql> COPY train_ML_IOT FROM '/tmp/greptimedb/train_ML_IOT.csv' WITH (FORMAT='csv');
Query OK, 48120 rows affected (0.11 sec)
  • 查询分析
mysql> SELECT * FROM "train_ML_IOT" WHERE "Junction" = 1 LIMIT 10;
+---------------------+----------+----------+-------------+
| TS                  | Junction | Vehicles | ID          |
+---------------------+----------+----------+-------------+
| 2017-06-20 08:00:00 |        1 |       60 | 20170620081 |
| 2017-06-20 09:00:00 |        1 |       76 | 20170620091 |
| 2017-06-20 10:00:00 |        1 |       92 | 20170620101 |
| 2017-06-20 11:00:00 |        1 |      102 | 20170620111 |
| 2017-06-20 12:00:00 |        1 |      113 | 20170620121 |
| 2017-06-20 13:00:00 |        1 |      100 | 20170620131 |
| 2017-06-20 14:00:00 |        1 |      107 | 20170620141 |
| 2017-06-20 15:00:00 |        1 |      110 | 20170620151 |
| 2017-06-20 16:00:00 |        1 |      101 | 20170620161 |
| 2017-06-20 17:00:00 |        1 |      108 | 20170620171 |
+---------------------+----------+----------+-------------+
10 rows in set (0.03 sec)

结论

上述提到的两种方式,都可以快速地通过 GreptimeDB 来分析查询外部数据,通过结合机器学习代码库进行建模,就可以做预测分析了。因为 GreptimeDB 支持 Python 脚本分析数据,就可以利用到其生态中的机器学习库对数据进行建模分析,具体的做法并非本篇重点,就不再展开。

GreptimeDB 一直处于快速的迭代中,我们也会不断地为大家带来更多的使用方式和最佳实践案例解析,如果使用上有任何问题,也欢迎随时在公众号留言或加入 Slack 社区与我们联系。


关于 Greptime

Greptime 格睿科技于 2022 年创立,目前正在完善和打造时序数据库。GreptimeDB 和格睿云 GreptimeCloud 这两款产品。

GreptimeDB 是款用 Rust 语言编写的时序数据库。具有分布式,开源,云原生,兼容性强等特点,帮助企业实时读写、处理和分析时序数据的同时,降低长期存储的成本。

GreptimeCloud 基于开源的 GreptimeDB,为用户提供全托管的 DBaaS,以及与可观测性、物联网等领域结合的应用产品。利用云提供软件和服务,可以达到快速的自助开通和交付,标准化的运维支持,和更好的资源弹性。GreptimeCloud 已正式开放内测,欢迎关注公众号或官网了解最新动态

官网:https://greptime.com/

公众号:GreptimeDB

GitHub: https://github.com/GreptimeTeam/greptimedb

文档:https://docs.greptime.com/

Twitter: https://twitter.com/Greptime

Slack: https://greptime.com/slack

LinkedIn: https://www.linkedin.com/company/greptime/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: arcsketch-user-guide.pdf是一份用于指导用户使用ArcSketch软件的用户手册。ArcSketch是一款图形编辑工具,用户可以使用它创建、编辑和修改各种类型的图形,如曲线、弧形、圆形和多边形等。 用户手册中会详细介绍ArcSketch软件的安装和设置步骤,以及如何开始使用它来绘制图形。手册还会提供关于软件界面的说明,让用户熟悉软件的各个功能区域和工具。 在手册中,会对ArcSketch的绘图功能进行详细解释,并提供一些示例和说明,以帮助用户更好地理解如何使用各种工具来实现特定的效果。手册还会提供一些技巧和建议,以帮助用户提高绘图的质量和效率。 此外,用户手册还会介绍一些高级功能,如图层管理、颜色和渐变填充、橡皮擦和修饰等,让用户能够绘制更加复杂和详细的图形。 最后,手册还会提供一些常见问题和故障排除的解决方案,以帮助用户解决在使用ArcSketch软件时可能遇到的一些问题。 总的来说,arcsketch-user-guide.pdf是一份详尽的用户手册,旨在指导用户正确地使用ArcSketch软件,并帮助他们充分利用该软件的各种功能来创建精美的图形。 ### 回答2: arcsketch-user-guide.pdf是一个用户指南,提供有关ArcSketch软件的详细信息和操作指导。ArcSketch是一款矢量绘图工具,常用于制作专业的地图、图表和其他图形。 这个用户指南包含了软件的安装和设置说明,以及主要功能的介绍。首先,它解释了如何安装ArcSketch软件并进行基本的设置。然后,它详细介绍了软件的界面布局和各个工具的功能。 用户指南中还包括了绘制基本形状如线条、多边形和圆形的方法。它解释了如何使用各种绘图工具进行精确的绘制和编辑。同时,还介绍了如何使用不同的填充和线条样式来增强绘图效果。 此外,用户指南还提供了一些高级绘图技巧和技术,如图层管理、数据导入和导出等。它还包含了关于符号化和标注图形的信息,以及如何创建图例和添加地理参考的说明。 用户指南以简洁明了的语言和图像进行解释,使用户能够迅速上手并充分利用ArcSketch的功能。通过按照指南中提供的步骤和提示,用户可以轻松创建出高质量、具有地理信息的图形。 总的来说,arcsketch-user-guide.pdf是一份非常有用的资源,可以帮助用户学习和使用ArcSketch软件,使他们能够以简单且专业的方式进行矢量绘图。 ### 回答3: arcsketch-user-guide.pdf 是一份用户指南,用于说明ArcSketch的使用方法和功能。ArcSketch是一款数字绘图软件,可用于绘制各种图形和图表。 用户指南中列出了软件的主要功能和操作步骤。首先,它介绍了软件的界面和工具栏,以便用户能够熟悉软件的布局和各个工具的作用。然后,它解释了如何开始一个新的绘图项目,并指导用户如何添加和编辑不同类型的图形,如线条、矩形、椭圆等。 用户指南还提供了一些高级功能的介绍,如图层管理、填充和纹理、渐变和不透明度等。这些功能可以帮助用户创建更加丰富多样的图形效果。 除了基本的绘图功能外,用户指南还介绍了如何使用ArcSketch的分组和对齐工具来整理和调整图形的位置关系。它还介绍了如何应用变换和变形工具,以及如何添加文本和标签来说明图表的内容。 在使用过程中,用户指南还提供了一些常见问题的解答和技巧建议,以帮助用户更好地使用软件。此外,用户指南还附带了一些实例和练习题,帮助用户更好地掌握软件的使用技巧。 总之,arcsketch-user-guide.pdf 是一份详细的用户指南,旨在帮助用户快速掌握ArcSketch的各项功能和操作技巧。无论是初学者还是有一定经验的用户,都可以通过阅读这份指南来提高其在数字绘图方面的能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值