Cluster
Create a cluster
Please refer to Kubernetes to get the infomation about creating a Kubernetes cluster.
Distributed Read/Write
SQL
You can follow the steps to use SQL to play with distributed insertions and queries:
- Use MySQL cli to connect to Frontend.
shell
1. mysql -h 127.0.0.1 -P 4002
2. Create a distributed table via CREATE statement.
SQL
1. CREATE TABLE dist_table(
2. ts TIMESTAMP DEFAULT current_timestamp(),
3. n INT,
4. row_id INT,
5. PRIMARY KEY(n),
6. TIME INDEX (ts)
7. )
8. PARTITION BY RANGE COLUMNS (n) (
9. PARTITION r0 VALUES LESS THAN (5),
10. PARTITION r1 VALUES LESS THAN (9),
11. PARTITION r2 VALUES LESS THAN (MAXVALUE),
12. )
13. engine=mito;
The result looks like the following:
shell
1. mysql> CREATE TABLE dist_table(
2. -> ts TIMESTAMP DEFAULT current_timestamp(),
3. -> n INT,
4. -> row_id INT,
5. -> TIME INDEX (ts)
6. -> PRIMARY KEY(n),
7. -> )
8. -> PARTITION BY RANGE COLUMNS (n) (
9. -> PARTITION r0 VALUES LESS THAN (5),
10. -> PARTITION r1 VALUES LESS THAN (9),
11. -> PARTITION r2 VALUES LESS THAN (MAXVALUE),
12. -> )
13. -> engine=mito;
14. Query OK, 3 rows affected (0.09 sec)
The dist_table is distributed among the Datanodes. You can refer to “Table Sharding” for more details.
3. Insert some data via INSERT statement.
SQL
1. INSERT INTO dist_table(n, row_id) VALUES (1, 1);
2. INSERT INTO dist_table(n, row_id) VALUES (2, 2);
3. INSERT INTO dist_table(n, row_id) VALUES (3, 3);
4. INSERT INTO dist_table(n, row_id) VALUES (4, 4);
5. INSERT INTO dist_table(n, row_id) VALUES (5, 5);
6. INSERT INTO dist_table(n, row_id) VALUES (6, 6);
7. INSERT INTO dist_table(n, row_id) VALUES (7, 7);
8. INSERT INTO dist_table(n, row_id) VALUES (8, 8);
9. INSERT INTO dist_table(n, row_id) VALUES (9, 9);
10. INSERT INTO dist_table(n, row_id) VALUES (10, 10);
11. INSERT INTO dist_table(n, row_id) VALUES (11, 11);
12. INSERT INTO dist_table(n, row_id) VALUES (12, 12);
4. Execute some queries via SELECT statement:
sql
1. SELECT * FROM dist_table ORDER BY n LIMIT 5;
sql
1. +---------------------+------+--------+
2. | ts | n | row_id |
3. +---------------------+------+--------+
4. | 2022-11-14 12:02:32 | 1 | 1 |
5. | 2022-11-14 12:02:32 | 2 | 2 |
6. | 2022-11-14 12:02:32 | 3 | 3 |
7. | 2022-11-14 12:02:32 | 4 | 4 |
8. | 2022-11-14 12:02:32 | 5 | 5 |
9. +---------------------+------+--------+
10. 5 rows in set (0.081 sec)
sql
1. SELECT MAX(n) FROM dist_table;
sql
1. +-------------------+
2. | MAX(dist_table.n) |
3. +-------------------+
4. | 12 |
5. +-------------------+
6. 1 row in set (0.057 sec)
sql
1. SELECT MIN(n) FROM dist_table;
sql
1. +-------------------+
2. | MIN(dist_table.n) |
3. +-------------------+
4. | 1 |
5. +-------------------+
6. 1 row in set (0.079 sec)
sql
1. SELECT * FROM dist_table WHERE n > 2 AND n < 10 ORDER BY row_id;
sql
1. +---------------------+------+--------+
2. | ts | n | row_id |
3. +---------------------+------+--------+
4. | 2022-11-14 12:02:32 | 3 | 3 |
5. | 2022-11-14 12:02:32 | 4 | 4 |
6. | 2022-11-14 12:02:32 | 5 | 5 |
7. | 2022-11-14 12:02:32 | 6 | 6 |
8. | 2022-11-14 12:02:32 | 7 | 7 |
9. | 2022-11-14 12:02:32 | 8 | 8 |
10. | 2022-11-14 12:02:32 | 9 | 9 |
11. +---------------------+------+--------+
12. 7 rows in set (0.02 sec)
sql
1. SELECT * FROM dist_table WHERE row_id = 10;
sql
1. +---------------------+------+--------+
2. | ts | n | row_id |
3. +---------------------+------+--------+
4. | 2022-11-14 12:02:32 | 10 | 10 |
5. +---------------------+------+--------+
6. 1 row in set (0.03 sec)
