Skip to content

基于 S3 部署一个单机的 MatrixOne

本文提供一个示例,旨在说明如何基于 S3 部署一个单机的 MatrixOne。区别于一般的单机部署方式,这种方式使用 S3 作为 MatrixOne 的存储介质,而不是直接采用宿主机器的本地磁盘。

适用场景

这种部署模式非常适合用于时序场景的测试。由于时序数据具有速度快、数据量大的特点,使用近乎无限容量的 S3 作为存储介质可以很好地满足这些需求,从而避免了单机本地磁盘空间不足的限制。

Note

此部署模式建议仅用于开发、测试等场景,而不推荐用于生产环境。生产环境,建议使用基于 k8s+s3 的分布式部署模式。

前置条件

准备一台宿主机并配置好 S3 存储介质,包括但不限于:鉴权密钥对、访问 endpoint、区域(私有化可忽略)、桶名路径等。此外,建议将 MatrixOne 单机部署的宿主机与 S3 对象存储置于同一内网,以确保网络不会成为性能瓶颈。

操作步骤

场景 1:MatrixOne with Minio

部署一个单机的 MatrixOne

参考单机部署 MatrixOne,完成 MatrixOne 的单机版部署,部署完毕暂不启动。

修改 MatrixOne 配置文件

以下以宿主机部署方式(即源码或二进制部署)为例进行说明,若使用容器部署方式,还需要将配置文件挂载到容器中,具体操作步骤容器化部署模式章节。宿主机部署模式下,默认配置文件一般位于 etc/launch/下。一般需要修改的地方有:mo 的部署路径、s3 的信息。

  • 备份默认配置文件夹
cd /your/mo-path/
cp -rp etc/launch etc/launch-default
  • CN 配置 (cn.toml)
#######################
#    一、默认配置       #
#######################

service-type = "CN"
data-dir = "./mo-data"

[log]
level = "info"

[cn]
uuid = "dd1dccb4-4d3c-41f8-b482-5251dc7a41bf"
port-base = 18000

[malloc]
check-fraction = 65536
enable-metrics = true

#######################
#    二、自定义配置     #
#######################

# fileservic数组的配置中,name分为三部分:LOCAL、S3、ETL,其中:
# 1、LOCAL:临时文件存储(一般配DISK的backend)
# 2、SHARED(旧配置项为S3,后改为SHARED,但仍然兼容S3写法):mo的数据存储
# 3、ETL:可观测性系统相关的数据存储(一般与mo的数据存储保持一致)

# 1、第一部分:LOCAL
# 1.1、(可选)配置LOCAL部分的本地路径,注意CN、TN、LOG需要配置不同的目录
[[fileservice]]
backend = "DISK"
data-dir = "/your/mo-path/matrixone/data/local/cn"
name = "LOCAL"

# 2、第二部分:S3
# (必选)
[[fileservice]]
backend = "MINIO" # 注意,MinIO时配置为MINIO,其余S3配置为S3
name = "S3"

# 2.1、(可选)配置S3部分的本地缓存,包括磁盘缓存和内存缓存
[fileservice.cache]
disk-capacity = "20GiB" # 本地磁盘缓存大小
disk-path = "/your/mo-path/matrixone/data/disk-cache" # 本地磁盘缓存路径
memory-capacity = "2GiB" #本地内存缓存大小

# 2.2、(必选)配置S3部分中用于存储mo data数据的对象存储信息,包括
[fileservice.s3]
bucket = "mo-on-minio-demo" # 桶名
endpoint = "http://10.0.0.1" # 访问地址
key-prefix = "mo/data" # 桶名后面接的路径
key-id = "xxxx" # 密钥对中的id
key-secret = "xxxx" #密钥对中的key

# 3、第三部分:ETL
#(必选)
[[fileservice]]
backend = "MINIO" # 注意,MinIO时配置为MINIO,其余S3配置为S3
name = "ETL"

# 3.1、(必选)配置ETL部分中的cache,一般配置为1B,即几乎没有
[fileservice.cache]
memory-capacity = "1B"

# 3.2、(必选)配置ETL部分中用于存储mo etl数据的对象存储信息,大部分信息与第2.2部分保持一致,但key-prefix用另外一个子目录即可
[fileservice.s3]
bucket = "mo-on-minio-demo" # 桶名
endpoint = "http://10.0.0.1" # 访问地址
key-prefix = "mo/etl" # 桶名后面接的路径
key-id = "xxxx" # 密钥对中的id
key-secret = "xxxx" #密钥对中的key
  • TN 配置 (tn.toml)
#######################
#    一、默认配置       #
#######################

service-type = "TN"
data-dir = "./mo-data"

[log]
level = "info"

[tn]
uuid = "dd4dccb4-4d3c-41f8-b482-5251dc7a41bf"
port-base = 19000

[malloc]
check-fraction = 65536
enable-metrics = true

#######################
#    二、自定义配置     #
#######################

# fileservic数组的配置中,name分为三部分:LOCAL、S3、ETL,其中:
# 1、LOCAL:临时文件存储(一般配DISK的backend)
# 2、SHARED(旧配置项为S3,后改为SHARED,但仍然兼容S3写法):mo的数据存储
# 3、ETL:可观测性系统相关的数据存储(一般与mo的数据存储保持一致)

# 1、第一部分:LOCAL
# 1.1、(可选)配置LOCAL部分的本地路径,注意CN、TN、LOG需要配置不同的目录
[[fileservice]]
backend = "DISK"
data-dir = "/your/mo-path/matrixone/data/local/tn"
name = "LOCAL"

# 2、第二部分:S3
# (必选)
[[fileservice]]
backend = "MINIO" # 注意,MinIO时配置为MINIO,其余S3配置为S3
name = "S3"

# 2.1、(可选)配置S3部分的本地缓存,包括磁盘缓存和内存缓存
[fileservice.cache]
disk-capacity = "20GiB" # 本地磁盘缓存大小
disk-path = "/your/mo-path/matrixone/data/disk-cache" # 本地磁盘缓存路径
memory-capacity = "2GiB" #本地内存缓存大小

# 2.2、(必选)配置S3部分中用于存储mo data数据的对象存储信息,包括
[fileservice.s3]
bucket = "mo-on-minio-demo" # 桶名
endpoint = "http://10.0.0.1" # 访问地址
key-prefix = "mo/data" # 桶名后面接的路径
key-id = "xxxx" # 密钥对中的id
key-secret = "xxxx" #密钥对中的key

# 3、第三部分:ETL
#(必选)
[[fileservice]]
backend = "MINIO" # 注意,MinIO时配置为MINIO,其余S3配置为S3
name = "ETL"

# 3.1、(必选)配置ETL部分中的cache,一般配置为1B,即几乎没有
[fileservice.cache]
memory-capacity = "1B"

# 3.2、(必选)配置ETL部分中用于存储mo etl数据的对象存储信息,大部分信息与第2.2部分保持一致,但key-prefix用另外一个子目录即可
[fileservice.s3]
bucket = "mo-on-minio-demo" # 桶名
endpoint = "http://10.0.0.1" # 访问地址
key-prefix = "mo/etl" # 桶名后面接的路径
key-id = "xxxx" # 密钥对中的id
key-secret = "xxxx" #密钥对中的key
  • LogService 配置(log.toml)
#######################
#    一、默认配置       #
#######################

# service node type, [DN|CN|LOG]
service-type = "LOG"
data-dir = "./mo-data"

[log]
level = "info"

[malloc]
check-fraction = 65536
enable-metrics = true

#######################
#    二、自定义配置     #
#######################

# fileservic数组的配置中,name分为三部分:LOCAL、S3、ETL,其中:
# 1、LOCAL:临时文件存储(一般配DISK的backend)
# 2、SHARED(旧配置项为S3,后改为SHARED,但仍然兼容S3写法):mo的数据存储
# 3、ETL:可观测性系统相关的数据存储(一般与mo的数据存储保持一致)

# 1、第一部分:LOCAL
# 1.1、(可选)配置LOCAL部分的本地路径,注意CN、TN、LOG需要配置不同的目录
[[fileservice]]
backend = "DISK"
data-dir = "/your/mo-path/matrixone/data/local/log"
name = "LOCAL"

# 2、第二部分:S3
# (必选)
[[fileservice]]
backend = "MINIO" # 注意,MinIO时配置为MINIO,其余S3配置为S3
name = "S3"

# 2.1、(可选)配置S3部分的本地缓存,包括磁盘缓存和内存缓存
[fileservice.cache]
disk-capacity = "20GiB" # 本地磁盘缓存大小
disk-path = "/your/mo-path/matrixone/data/disk-cache" # 本地磁盘缓存路径
memory-capacity = "2GiB" #本地内存缓存大小

# 2.2、(必选)配置S3部分中用于存储mo data数据的对象存储信息,包括
[fileservice.s3]
bucket = "mo-on-minio-demo" # 桶名
endpoint = "http://10.0.0.1" # endpoint即访问地址
key-prefix = "mo/data" # 桶名后面接的路径
key-id = "xxxx" # 密钥对中的id
key-secret = "xxxx" #密钥对中的key

# 3、第三部分:ETL
#(必选)
[[fileservice]]
backend = "MINIO" # 注意,MinIO时配置为MINIO,其余S3配置为S3
name = "ETL"

# 3.1、(必选)配置ETL部分中的cache,一般配置为1B,即几乎没有
[fileservice.cache]
memory-capacity = "1B"

# 3.2、(必选)配置ETL部分中用于存储mo etl数据的对象存储信息,大部分信息与第2.2部分保持一致,但key-prefix用另外一个子目录即可
[fileservice.s3]
bucket = "mo-on-minio-demo" # 桶名
endpoint = "http://10.0.0.1" # endpoint即访问地址
key-prefix = "mo/etl" # 桶名后面接的路径
key-id = "xxxx" # 密钥对中的id
key-secret = "xxxx" #密钥对中的key

启动 mo-service

# 启动mo-service
mo_ctl start
# 稍等片刻后,确认mo-service运行状态
mo_ctl status

连接 MatrixOne

# 若mo_ctl保持默认配置,则无需设置连接信息,默认会连接到本地mo
mo_ctl set_conf MO_HOST=127.0.0.1
mo_ctl set_conf MO_PORT=6001
mo_ctl set_conf MO_USER=dump
mo_ctl set_conf MO_PW=111

# 连接到mo
mo_ctl connect

确认 MatrixOne 正常工作

# 以创建一个库表为例,写入一些示例数据,确认mo可以正常工作
github@shpc2-10-222-1-9:/data/mo/main/matrixone/etc/launch$ mo_ctl connect
2024-08-26 17:44:10.196 UTC+0800    [INFO]    Checking connectivity
2024-08-26 17:44:10.207 UTC+0800    [INFO]    Ok, connecting for user ... 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.30-MatrixOne-v287278 MatrixOne

Copyright (c) 2000, 2024, 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 databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mo_catalog         |
| mo_debug           |
| mo_task            |
| mysql              |
| system             |
| system_metrics     |
+--------------------+
7 rows in set (0.01 sec)

mysql> create database test;
Query OK, 1 row affected (0.02 sec)

mysql> use test;
Database changed
mysql> create table t1(create_time timestamp(3), device_id varchar(25), metric_value float);
Query OK, 0 rows affected (0.01 sec)

mysql> insert into t1 values ('2024-08-26 17:45:01', 'jkasdjlasd', 123.22);
Query OK, 1 row affected (0.01 sec)

mysql> insert into t1 values ('2024-08-26 17:45:10', 'jkasdjlasd', 123.99);
Query OK, 1 row affected (0.00 sec)

mysql> insert into t1 values ('2024-08-26 17:45:10', 'dassad', 88.99);
Query OK, 1 row affected (0.00 sec)

mysql> select * from t1;
+-------------------------+------------+--------------+
| create_time             | device_id  | metric_value |
+-------------------------+------------+--------------+
| 2024-08-26 17:45:01.000 | jkasdjlasd |       123.22 |
| 2024-08-26 17:45:10.000 | jkasdjlasd |       123.99 |
| 2024-08-26 17:45:10.000 | dassad     |        88.99 |
+-------------------------+------------+--------------+
3 rows in set (0.00 sec)

mysql> quit
Bye
2024-08-26 17:45:52.827 UTC+0800    [INFO]    Connect succeeded and finished. Bye

确认数据写入 S3(MinIO)

我们可以使用 mc(minio 的官方命令行客户端工具)来确认 mo 的数据被写入到了对应的存储桶中。mc 的具体使用方式可以参考以下说明文档: https://min.io/docs/minio/linux/reference/minio-mc.html

github@shpc2-10-222-1-9:/data/mo/main/matrixone/etc/launch$ mc ls minio-sh/mo-on-minio-demo/mo
[2024-08-26 18:00:10 CST]     0B data/
github@shpc2-10-222-1-9:/data/mo/main/matrixone/etc/launch$ mc ls minio-sh/mo-on-minio-demo/mo/data/
[2024-08-26 17:47:32 CST] 1.7KiB STANDARD 01918e10-ec44-7245-a131-690549db5f05_00000
[2024-08-26 17:48:17 CST] 2.7KiB STANDARD 01918e10-ec44-72d2-9973-5d4ced588a4a_00000
[2024-08-26 17:48:12 CST]   972B STANDARD 01918e10-ec44-7321-93f8-5820d3abd218_00000
# ....
# 中间的文件省去
01918e1f-8a38-725e-b95f-1ba3213883ac_00000
[2024-08-26 17:58:42 CST]   739B STANDARD 01918e1f-9db7-7950-aa1a-1429b586e98d_00000
[2024-08-26 17:58:42 CST]  24KiB STANDARD 01918e1f-9db7-7bcd-bbf0-2aa3e16b6f73_00000
[2024-08-26 17:58:42 CST] 3.7KiB STANDARD 01918e1f-9dd0-7386-98e9-f2530420d460_00000
[2024-08-26 18:00:12 CST]     0B ckp/

场景 2:MatrixOne with S3

本章节将说明如何基于遵循标准 S3 协议的对象存储部署单机版 MatrixOne,以腾讯云 COS 为例。其他类似的 S3 服务商,如 AWS、阿里云 OSS 等,其配置方法类似,可参照此步骤进行。基于腾讯云 COS 的部署步骤与 MinIO 相比,除了配置文件略有不同,其他步骤基本一致。以下将重点说明配置文件的差异,其他步骤不再赘述。

修改 MatrixOne 配置文件

  • CN 配置 (cn.toml)
#######################
#    一、默认配置       #
#######################

service-type = "CN"
data-dir = "./mo-data"

[log]
level = "info"

[cn]
uuid = "dd1dccb4-4d3c-41f8-b482-5251dc7a41bf"
port-base = 18000

[malloc]
check-fraction = 65536
enable-metrics = true

#######################
#    二、自定义配置     #
#######################

# fileservic数组的配置中,name分为三部分:LOCAL、S3、ETL,其中:
# 1、LOCAL:临时文件存储(一般配DISK的backend)
# 2、SHARED(旧配置项为S3,后改为SHARED,但仍然兼容S3写法):mo的数据存储
# 3、ETL:可观测性系统相关的数据存储(一般与mo的数据存储保持一致)

# 1、第一部分:LOCAL
# 1.1、(可选)配置LOCAL部分的本地路径,注意CN、TN、LOG需要配置不同的目录
[[fileservice]]
backend = "DISK"
data-dir = "/your/mo/path/data/local/cn"
name = "LOCAL"

# 2、第二部分:S3
# (必选)
[[fileservice]]
backend = "S3" # 注意,MinIO时配置为MINIO,其余S3配置为S3
name = "S3"

# 2.1、(可选)配置S3部分的本地缓存,包括磁盘缓存和内存缓存
[fileservice.cache]
disk-capacity = "20GiB" # 本地磁盘缓存大小
disk-path = "/your/mo/path/data/disk-cache" # 本地磁盘缓存路径
memory-capacity = "2GiB" #本地内存缓存大小

# 2.2、(必选)配置S3部分中用于存储mo data数据的对象存储信息,包括
[fileservice.s3]
bucket = "my-bucket-12345678" # 桶名
endpoint = "https://cos.ap-nanjing.myqcloud.com" # endpoint即访问地址
key-prefix = "mo/data" # 桶名后面接的路径
key-id = "xxxxxx" # 密钥对中的id
key-secret = "xxxxxx" #密钥对中的key
region = "ap-nanjing" # 地域

# 3、第三部分:ETL
#(必选)
[[fileservice]]
backend = "S3" # 注意,MinIO时配置为MINIO,其余S3配置为S3
name = "ETL"

# 3.1、(必选)配置ETL部分中的cache,一般配置为1B,即几乎没有
[fileservice.cache]
memory-capacity = "1B"

# 3.2、(必选)配置ETL部分中用于存储mo etl数据的对象存储信息,大部分信息与第2.2部分保持一致,但key-prefix用另外一个子目录即可
[fileservice.s3]
bucket = "my-bucket-12345678" # 桶名
endpoint = "https://cos.ap-nanjing.myqcloud.com" # endpoint即访问地址
key-prefix = "mo/etl" # 桶名后面接的路径
key-id = "xxxxxx" # 密钥对中的id
key-secret = "xxxxxx" #密钥对中的key
region = "ap-nanjing" # 地域
  • TN 配置 (tn.toml)
#######################
#    一、默认配置       #
#######################

service-type = "TN"
data-dir = "./mo-data"

[log]
level = "info"

[tn]
uuid = "dd4dccb4-4d3c-41f8-b482-5251dc7a41bf"
port-base = 19000

[malloc]
check-fraction = 65536
enable-metrics = true

#######################
#    二、自定义配置     #
#######################

# fileservic数组的配置中,name分为三部分:LOCAL、S3、ETL,其中:
# 1、LOCAL:临时文件存储(一般配DISK的backend)
# 2、SHARED(旧配置项为S3,后改为SHARED,但仍然兼容S3写法):mo的数据存储
# 3、ETL:可观测性系统相关的数据存储(一般与mo的数据存储保持一致)

# 1、第一部分:LOCAL
# 1.1、(可选)配置LOCAL部分的本地路径,注意CN、TN、LOG需要配置不同的目录
[[fileservice]]
backend = "DISK"
data-dir = "/your/mo/path/data/local/tn"
name = "LOCAL"

# 2、第二部分:S3
# (必选)
[[fileservice]]
backend = "S3" # 注意,MinIO时配置为MINIO,其余S3配置为S3
name = "S3"

# 2.1、(可选)配置S3部分的本地缓存,包括磁盘缓存和内存缓存
[fileservice.cache]
disk-capacity = "20GiB" # 本地磁盘缓存大小
disk-path = "/your/mo/path/data/disk-cache" # 本地磁盘缓存路径
memory-capacity = "2GiB" #本地内存缓存大小

# 2.2、(必选)配置S3部分中用于存储mo data数据的对象存储信息,包括
[fileservice.s3]
bucket = "my-bucket-12345678" # 桶名
endpoint = "https://cos.ap-nanjing.myqcloud.com" # endpoint即访问地址
key-prefix = "mo/data" # 桶名后面接的路径
key-id = "xxxxxx" # 密钥对中的id
key-secret = "xxxxxx" #密钥对中的key
region = "ap-nanjing" # 地域

# 3、第三部分:ETL
#(必选)
[[fileservice]]
backend = "S3" # 注意,MinIO时配置为MINIO,其余S3配置为S3
name = "ETL"

# 3.1、(必选)配置ETL部分中的cache,一般配置为1B,即几乎没有
[fileservice.cache]
memory-capacity = "1B"

# 3.2、(必选)配置ETL部分中用于存储mo etl数据的对象存储信息,大部分信息与第2.2部分保持一致,但key-prefix用另外一个子目录即可
[fileservice.s3]
bucket = "my-bucket-12345678" # 桶名
endpoint = "https://cos.ap-nanjing.myqcloud.com" # endpoint即访问地址
key-prefix = "mo/etl" # 桶名后面接的路径
key-id = "xxxxxx" # 密钥对中的id
key-secret = "xxxxxx" #密钥对中的key
region = "ap-nanjing" # 地域
  • LogService 配置(log.toml)
#######################
#    一、默认配置       #
#######################

# service node type, [DN|CN|LOG]
service-type = "LOG"
data-dir = "./mo-data"

[log]
level = "info"

[malloc]
check-fraction = 65536
enable-metrics = true

#######################
#    二、自定义配置     #
#######################

# fileservic数组的配置中,name分为三部分:LOCAL、S3、ETL,其中:
# 1、LOCAL:临时文件存储(一般配DISK的backend)
# 2、SHARED(旧配置项为S3,后改为SHARED,但仍然兼容S3写法):mo的数据存储
# 3、ETL:可观测性系统相关的数据存储(一般与mo的数据存储保持一致)

# 1、第一部分:LOCAL
# 1.1、(可选)配置LOCAL部分的本地路径,注意CN、TN、LOG需要配置不同的目录
[[fileservice]]
backend = "DISK"
data-dir = "/your/mo/path/data/local/log"
name = "LOCAL"

# 2、第二部分:S3
# (必选)
[[fileservice]]
backend = "S3" # 注意,MinIO时配置为MINIO,其余S3配置为S3
name = "S3"

# 2.1、(可选)配置S3部分的本地缓存,包括磁盘缓存和内存缓存
[fileservice.cache]
disk-capacity = "20GiB" # 本地磁盘缓存大小
disk-path = "/your/mo/path/data/disk-cache" # 本地磁盘缓存路径
memory-capacity = "2GiB" #本地内存缓存大小

# 2.2、(必选)配置S3部分中用于存储mo data数据的对象存储信息,包括
[fileservice.s3]
bucket = "my-bucket-12345678" # 桶名
endpoint = "https://cos.ap-nanjing.myqcloud.com" # endpoint即访问地址
key-prefix = "mo/data" # 桶名后面接的路径
key-id = "xxxxxx" # 密钥对中的id
key-secret = "xxxxxx" #密钥对中的key
region = "ap-nanjing" # 地域

# 3、第三部分:ETL
#(必选)
[[fileservice]]
backend = "S3" # 注意,MinIO时配置为MINIO,其余S3配置为S3
name = "ETL"

# 3.1、(必选)配置ETL部分中的cache,一般配置为1B,即几乎没有
[fileservice.cache]
memory-capacity = "1B"

# 3.2、(必选)配置ETL部分中用于存储mo etl数据的对象存储信息,大部分信息与第2.2部分保持一致,但key-prefix用另外一个子目录即可
[fileservice.s3]
bucket = "my-bucket-12345678" # 桶名
endpoint = "https://cos.ap-nanjing.myqcloud.com" # endpoint即访问地址
key-prefix = "mo/etl" # 桶名后面接的路径
key-id = "xxxxxx" # 密钥对中的id
key-secret = "xxxxxx" #密钥对中的key
region = "ap-nanjing" # 地域

确认数据写入 COS

我们可以使用上述的 mc 工具,也可以使用腾讯云 COS 提供的 coscli 工具来确认,请参考官方文档说明:https://cloud.tencent.com/document/product/436/63143

github@VM-32-6-debian:/data/mo/main$ mo_ctl connect
2024-08-26 18:38:31.105 UTC+0800    [INFO]    Checking connectivity
2024-08-26 18:38:31.124 UTC+0800    [INFO]    Ok, connecting for user ... 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 8.0.30-MatrixOne-v287278 MatrixOne

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

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

MySQL [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mo_catalog         |
| mo_debug           |
| mo_task            |
| mysql              |
| system             |
| system_metrics     |
+--------------------+
7 rows in set (0.003 sec)

MySQL [(none)]> create database test;
Query OK, 1 row affected (0.008 sec)

MySQL [(none)]> use test
Database changed
MySQL [test]> create table t1(create_time timestamp(3), device_id varchar(25), metric_value float);
Query OK, 0 rows affected (0.012 sec)

MySQL [test]> insert into t1 values ('2024-08-26 17:45:01', 'jkasdjlasd', 123.22);
Query OK, 1 row affected (0.005 sec)

MySQL [test]>  insert into t1 values ('2024-08-26 17:45:10', 'jkasdjlasd', 123.99);
Query OK, 1 row affected (0.003 sec)

MySQL [test]> insert into t1 values ('2024-08-26 17:45:10', 'dassad', 88.99);
Query OK, 1 row affected (0.002 sec)

MySQL [test]> select * from t1;
+-------------------------+------------+--------------+
| create_time             | device_id  | metric_value |
+-------------------------+------------+--------------+
| 2024-08-26 17:45:01.000 | jkasdjlasd |       123.22 |
| 2024-08-26 17:45:10.000 | jkasdjlasd |       123.99 |
| 2024-08-26 17:45:10.000 | dassad     |        88.99 |
+-------------------------+------------+--------------+
3 rows in set (0.003 sec)

MySQL [test]> quit
Bye
2024-08-26 18:50:17.007 UTC+0800    [INFO]    Connect succeeded and finished. Bye


github@VM-32-6-debian:/data/mo/main$ coscli ls cos://mo-on-cos-demo
       KEY       | TYPE | LAST MODIFIED | SIZE  
-----------------+------+---------------+-------
  main_30eca66c/ |  DIR |               |       
             mo/ |  DIR |               |       
       KEY       | TYPE |  LAST MODIFIED  | SIZE  
-----------------+------+-----------------+-------
-----------------+------+-----------------+-------
                          TOTAL OBJECTS:  |  2    
                        ------------------+-------
github@VM-32-6-debian:/data/mo/main$ coscli ls cos://mo-on-cos-demo/mo/
    KEY    |   TYPE   |      LAST MODIFIED       | SIZE  
-----------+----------+--------------------------+-------
  mo/data/ |      DIR |                          |       
       mo/ | STANDARD | 2024-08-26T10:28:28.000Z | 0  B  
    KEY    |   TYPE   |      LAST MODIFIED       | SIZE  
-----------+----------+--------------------------+-------
-----------+----------+--------------------------+-------
                             TOTAL OBJECTS:      |  2    
                      ---------------------------+-------
github@VM-32-6-debian:/data/mo/main$ coscli ls cos://mo-on-cos-demo/mo/data
    KEY    | TYPE | LAST MODIFIED | SIZE  
-----------+------+---------------+-------
  mo/data/ |  DIR |               |       
    KEY    | TYPE |  LAST MODIFIED  | SIZE  
-----------+------+-----------------+-------
-----------+------+-----------------+-------
                    TOTAL OBJECTS:  |  1    
                  ------------------+-------
github@VM-32-6-debian:/data/mo/main$ coscli ls cos://mo-on-cos-demo/mo/data/
                         KEY                         |   TYPE   |      LAST MODIFIED       |   SIZE     
-----------------------------------------------------+----------+--------------------------+------------
                                        mo/data/ckp/ |      DIR |                          |            
  mo/data/01918e44-0205-7239-9fdc-a3370df0cc73_00000 | STANDARD | 2024-08-26T10:43:39.000Z |  15.42 KB  
  mo/data/01918e44-0205-7463-b9b1-95a4b88f11fa_00000 | STANDARD | 2024-08-26T10:43:49.000Z |    972  B  
# ....
# 中间省去
  mo/data/01918e4e-ba33-772f-a606-07a0e7c20e03_00000 | STANDARD | 2024-08-26T10:50:09.000Z |   2.26 KB  
  mo/data/01918e4e-ba34-7605-b070-c53224bc16e2_00000 | STANDARD | 2024-08-26T10:50:09.000Z |  45.77 KB  
  mo/data/01918e4e-ba36-7080-96b6-7000c1f978aa_00000 | STANDARD | 2024-08-26T10:50:09.000Z |  62.67 KB  
                         KEY                         |   TYPE   |      LAST MODIFIED       |   SIZE     
-----------------------------------------------------+----------+--------------------------+------------
-----------------------------------------------------+----------+--------------------------+------------
                                                                       TOTAL OBJECTS:      |    119     
                                                                ---------------------------+------------

容器化部署模式

根据场景,按上面步骤,先配置好 cn.toml、tn.toml、log.toml 文件。之后,把这些文件存放到同一个目录下,例如/data/mo_confs。此外,还需要配置一个 launch.toml 文件,内容如下:

  • 修改 MatrixOne 配置文件
logservices = [
    "./etc/log.toml",
]

tnservices = [
    "./etc/tn.toml"
]

cnservices = [
    "./etc/cn.toml"
]
  • 设置 mo_ctl 工具配置
先配置好cn.toml、tn.toml、log.toml
mo_ctl set_conf MO_CONTAINER_IMAGE=matrixorigin/matrixone/1.2.4 #设置镜像
mo_ctl set_conf MO_CONTAINER_NAME=mo # 设置容器名
mo_ctl set_conf MO_CONTAINER_CONF_HOST_PATH=/data/mo_confs/ # 设置宿主机上的mo配置文件存放的目录
mo_ctl set_conf MO_CONTAINER_CONF_CON_FILE="/etc/launch.toml" # 设置容器启动时容器内的配置文件路径
mo_ctl set_conf MO_CONTAINER_DATA_HOST_PATH="/data/mo-data/" # 设置挂载到容器的宿主机数据目录
mo_ctl set_conf MO_CONTAINER_AUTO_RESTART="yes"   # 配置容器异常退出后自动重启
  • 启动 MatrixOne 容器

设置 MatrixOne 部署模式为容器,并启动 MatrixOne 容器

mo_ctl set_conf MO_DEPLOY_MODE=docker
mo_ctl start