ARRAY
更新时间:2025-05-29
ARRAY<T>
表示由 T 类型元素组成的数组,不能作为 key 列使用。
- 2.0 之前仅支持在 Duplicate 模型的表中使用。
- 从 2.0 版本开始支持在 Unique 模型的表中的非 key 列使用。
T 支持的类型有:
Plain Text
1BOOLEAN, TINYINT, SMALLINT, INT, BIGINT, LARGEINT, FLOAT, DOUBLE, DECIMAL,
2DATE, DATEV2, DATETIME, DATETIMEV2, CHAR, VARCHAR, STRING
CSV 格式导入
第 1 步:准备数据
创建如下的 csv 文件:test_array.csv
其中分隔符使用 |
而不是逗号,以便和 array 中的逗号区分。
Plain Text
11|[1,2,3,4,5]
22|[6,7,8]
33|[]
44|null
第 2 步:在数据库中建表
Plain Text
1CREATE TABLE `array_test` (
2 `id` INT NOT NULL,
3 `c_array` ARRAY<INT> NULL
4)
5DUPLICATE KEY(`id`)
6DISTRIBUTED BY HASH(`id`) BUCKETS 1
7PROPERTIES (
8 "replication_allocation" = "tag.location.default: 1"
9);
第 3 步:导入数据
Plain Text
1curl --location-trusted \
2 -u "root":"" \
3 -H "column_separator:|" \
4 -H "columns: id, c_array" \
5 -T "test_array.csv" \
6 http://localhost:8040/api/testdb/array_test/_stream_load
第 4 步:检查导入数据
Plain Text
1mysql> SELECT * FROM array_test;
2+------+-----------------+
3| id | c_array |
4+------+-----------------+
5| 1 | [1, 2, 3, 4, 5] |
6| 2 | [6, 7, 8] |
7| 3 | [] |
8| 4 | NULL |
9+------+-----------------+
104 rows in set (0.01 sec)
JSON 格式导入
第 1 步:准备数据
创建如下的 JSON 文件,test_array.json
Plain Text
1[
2 {"id":1, "c_array":[1,2,3,4,5]},
3 {"id":2, "c_array":[6,7,8]},
4 {"id":3, "c_array":[]},
5 {"id":4, "c_array":null}
6]
第 2 步:在数据库中建表
Plain Text
1CREATE TABLE `array_test` (
2 `id` INT NOT NULL,
3 `c_array` ARRAY<INT> NULL
4)
5DUPLICATE KEY(`id`)
6DISTRIBUTED BY HASH(`id`) BUCKETS 1
7PROPERTIES (
8 "replication_allocation" = "tag.location.default: 1"
9);
第 3 步:导入数据
Plain Text
1curl --location-trusted \
2 -u "root":"" \
3 -H "format:json" \
4 -H "columns: id, c_array" \
5 -H "strip_outer_array:true" \
6 -T "test_array.json" \
7 http://localhost:8040/api/testdb/array_test/_stream_load
第 4 步:检查导入数据
Plain Text
1mysql> SELECT * FROM array_test;
2+------+-----------------+
3| id | c_array |
4+------+-----------------+
5| 1 | [1, 2, 3, 4, 5] |
6| 2 | [6, 7, 8] |
7| 3 | [] |
8| 4 | NULL |
9+------+-----------------+
104 rows in set (0.01 sec)