Skip to content

Commit

Permalink
๐Ÿ’ฌGenerate LLM translations
Browse files Browse the repository at this point in the history
  • Loading branch information
github-actions[bot] authored and Chasen-Zhang committed Sep 27, 2024
1 parent 0d540e5 commit 9aa260d
Show file tree
Hide file tree
Showing 2 changed files with 237 additions and 1 deletion.
8 changes: 7 additions & 1 deletion docs/cn/guides/54-query/07-dictionary.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,15 @@ Databend็š„ๅญ—ๅ…ธๅŠŸ่ƒฝๆไพ›ไบ†ไธ€็ง้ซ˜ๆ•ˆ็š„ๆ–นๅผ๏ผŒๅฏไปฅ็›ดๆŽฅๅœจDatabend

Databend็›ฎๅ‰ๆ”ฏๆŒMySQLๅ’ŒRedisไฝœไธบๅญ—ๅ…ธ็š„ๅค–้ƒจๆบใ€‚

## ๆ•™็จ‹

- [ไฝฟ็”จๅญ—ๅ…ธ่ฎฟ้—ฎMySQLๅ’ŒRedis](/tutorials/integrate/access-mysql-and-redis)

> ๅœจๆœฌๆ•™็จ‹ไธญ๏ผŒๆˆ‘ไปฌๅฐ†ๆŒ‡ๅฏผๆ‚จไฝฟ็”จDatabendไธญ็š„ๅญ—ๅ…ธ่ฎฟ้—ฎMySQLๅ’ŒRedisๆ•ฐๆฎใ€‚ๆ‚จๅฐ†ๅญฆไน ๅฆ‚ไฝ•ๅˆ›ๅปบๆ˜ ๅฐ„ๅˆฐ่ฟ™ไบ›ๅค–้ƒจๆ•ฐๆฎๆบ็š„ๅญ—ๅ…ธ๏ผŒไปŽ่€Œๅฎž็Žฐๆ— ็ผ็š„ๆ•ฐๆฎๆŸฅ่ฏขๅ’Œ้›†ๆˆใ€‚
## ไฝฟ็”จ็คบไพ‹

ไปฅไธ‹็คบไพ‹ๆผ”็คบไบ†ๅฆ‚ไฝ•้€š่ฟ‡ไฝฟ็”จๅญ—ๅ…ธๅฐ†MySQLไธŽDatabend้›†ๆˆ๏ผŒไปŽ่€Œๅ…่ฎธๆ‚จ็›ดๆŽฅไปŽDatabendๆŸฅ่ฏขๅญ˜ๅ‚จๅœจMySQLไธญ็š„ๆ•ฐๆฎใ€‚ๆญค่ฟ‡็จ‹ๆถ‰ๅŠๅœจMySQLไธญๅˆ›ๅปบไธ€ไธช่กจ๏ผŒๅœจDatabendไธญ่ฎพ็ฝฎ็›ธๅบ”็š„่กจ๏ผŒๅˆ›ๅปบไธ€ไธชๅญ—ๅ…ธๆฅๆ˜ ๅฐ„ๆ•ฐๆฎ๏ผŒๅนถไฝฟ็”จ[DICT_GET](/sql/sql-functions/dictionary-functions/dict-get)ๅ‡ฝๆ•ฐๅœจๆŸฅ่ฏขไธญไปŽๅญ—ๅ…ธไธญๆฃ€็ดขๅ€ผใ€‚
ไปฅไธ‹็คบไพ‹ๆผ”็คบไบ†ๅฆ‚ไฝ•้€š่ฟ‡ไฝฟ็”จๅญ—ๅ…ธๅฐ†MySQLไธŽDatabend้›†ๆˆ๏ผŒไปŽ่€Œๅ…่ฎธๆ‚จ็›ดๆŽฅไปŽDatabendๆŸฅ่ฏขๅญ˜ๅ‚จๅœจMySQLไธญ็š„ๆ•ฐๆฎใ€‚ๆญค่ฟ‡็จ‹ๆถ‰ๅŠๅœจMySQLไธญๅˆ›ๅปบ่กจ๏ผŒๅœจDatabendไธญ่ฎพ็ฝฎ็›ธๅบ”็š„่กจ๏ผŒๅˆ›ๅปบๅญ—ๅ…ธไปฅๆ˜ ๅฐ„ๆ•ฐๆฎ๏ผŒๅนถไฝฟ็”จ[DICT_GET](/sql/sql-functions/dictionary-functions/dict-get)ๅ‡ฝๆ•ฐๅœจๆŸฅ่ฏขไธญไปŽๅญ—ๅ…ธไธญๆฃ€็ดขๅ€ผใ€‚

### ๆญฅ้ชค1๏ผšๅœจMySQLไธญๅˆ›ๅปบ่กจ

Expand Down
230 changes: 230 additions & 0 deletions docs/cn/tutorials/integrate/access-mysql-and-redis.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,230 @@
---
title: ไฝฟ็”จๅญ—ๅ…ธ่ฎฟ้—ฎ MySQL ๅ’Œ Redis
---

ๅœจๆœฌๆ•™็จ‹ไธญ๏ผŒๆˆ‘ไปฌๅฐ†ๆŒ‡ๅฏผๆ‚จไฝฟ็”จ Databend ไธญ็š„ๅญ—ๅ…ธ่ฎฟ้—ฎ MySQL ๅ’Œ Redis ๆ•ฐๆฎใ€‚ๆ‚จๅฐ†ๅญฆไน ๅฆ‚ไฝ•ๅˆ›ๅปบๆ˜ ๅฐ„ๅˆฐ่ฟ™ไบ›ๅค–้ƒจๆ•ฐๆฎๆบ็š„ๅญ—ๅ…ธ๏ผŒไปŽ่€Œๅฎž็Žฐๆ— ็ผ็š„ๆ•ฐๆฎๆŸฅ่ฏขๅ’Œ้›†ๆˆใ€‚

## ๅผ€ๅง‹ไน‹ๅ‰

ๅœจๅผ€ๅง‹ไน‹ๅ‰๏ผŒ่ฏท็กฎไฟๆ‚จ็š„ๆœฌๅœฐๆœบๅ™จไธŠๅทฒๅฎ‰่ฃ… [Docker](https://www.docker.com/)ใ€‚ๆˆ‘ไปฌ้œ€่ฆ Docker ๆฅ่ฎพ็ฝฎ Databendใ€MySQL ๅ’Œ Redis ๆ‰€้œ€็š„ๅฎนๅ™จใ€‚ๆ‚จ่ฟ˜้œ€่ฆไธ€ไธช SQL ๅฎขๆˆท็ซฏๆฅ่ฟžๆŽฅๅˆฐ MySQL๏ผ›ๆˆ‘ไปฌๆŽจ่ไฝฟ็”จ [BendSQL](/guides/sql-clients/bendsql/) ๆฅ่ฟžๆŽฅ Databendใ€‚

## ๆญฅ้ชค 1๏ผš่ฎพ็ฝฎ็Žฏๅขƒ

ๅœจ่ฟ™ไธ€ๆญฅไธญ๏ผŒๆˆ‘ไปฌๅฐ†ๅœจๆ‚จ็š„ๆœฌๅœฐๆœบๅ™จไธŠไฝฟ็”จ Docker ๅฏๅŠจ Databendใ€MySQL ๅ’Œ Redis ็š„ๅฎžไพ‹ใ€‚

1. ๅˆ›ๅปบไธ€ไธชๅไธบ `mynetwork` ็š„ Docker ็ฝ‘็ปœ๏ผŒไปฅๅฎž็Žฐ Databendใ€MySQL ๅ’Œ Redis ๅฎนๅ™จไน‹้—ด็š„้€šไฟก๏ผš

```bash
docker network create mynetwork
```

2. ่ฟ่กŒไปฅไธ‹ๅ‘ฝไปค๏ผŒๅœจ `mynetwork` ็ฝ‘็ปœไธญๅฏๅŠจไธ€ไธชๅไธบ `mysql` ็š„ MySQL ๅฎนๅ™จ๏ผš

```bash
docker run -d \
--name=mysql \
--network=mynetwork \
-e MYSQL_ROOT_PASSWORD=admin \
-p 3306:3306 \
mysql:latest
```

3. ่ฟ่กŒไปฅไธ‹ๅ‘ฝไปค๏ผŒๅœจ `mynetwork` ็ฝ‘็ปœไธญๅฏๅŠจไธ€ไธชๅไธบ `databend` ็š„ Databend ๅฎนๅ™จ๏ผš

```bash
docker run -d \
--name=databend \
--network=mynetwork \
-p 3307:3307 \
-p 8000:8000 \
-p 8124:8124 \
-p 8900:8900 \
datafuselabs/databend:nightly
```

4. ่ฟ่กŒไปฅไธ‹ๅ‘ฝไปค๏ผŒๅœจ `mynetwork` ็ฝ‘็ปœไธญๅฏๅŠจไธ€ไธชๅไธบ `redis` ็š„ Redis ๅฎนๅ™จ๏ผš

```bash
docker run -d \
--name=redis \
--network=mynetwork \
-p 6379:6379 \
redis:latest
```

5. ้€š่ฟ‡ๆฃ€ๆŸฅ `mynetwork` Docker ็ฝ‘็ปœ๏ผŒ้ชŒ่ฏ Databendใ€MySQL ๅ’Œ Redis ๅฎนๅ™จๆ˜ฏๅฆ่ฟžๆŽฅๅˆฐๅŒไธ€็ฝ‘็ปœ๏ผš

```bash
docker network inspect mynetwork

[
{
"Name": "mynetwork",
"Id": "ba8984e9ca07f49dd6493fd7c8be9831bda91c44595fc54305fc6bc241a77485",
"Created": "2024-09-23T21:24:34.59324771Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "172.18.0.0/16",
"Gateway": "172.18.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"14d50cc4d075158a6d5fa4e6c8b7db60960f8ba1f64d6bceff0692c7e99f37b5": {
"Name": "redis",
"EndpointID": "e1d1015fea745bbbb34c6a9fb11010b6960a139914b7cc2c6a20fbca4f3b77d8",
"MacAddress": "02:42:ac:12:00:04",
"IPv4Address": "172.18.0.4/16",
"IPv6Address": ""
},
"276bc1023f0ea999afc41e063f1f3fe7404cb6fbaaf421005d5c05be343ce5e5": {
"Name": "databend",
"EndpointID": "ac915b9df2fef69c5743bf16b8f07e0bb8c481ca7122b171d63fb9dc2239f873",
"MacAddress": "02:42:ac:12:00:03",
"IPv4Address": "172.18.0.3/16",
"IPv6Address": ""
},
"95c21de94d27edc5e6fa8e335e0fd5bff12557fa30889786de9f483b8d111dbc": {
"Name": "mysql",
"EndpointID": "44fdf40de8c3d4c8fec39eb03ef1219c9cf1548e9320891694a9758dd0540ce3",
"MacAddress": "02:42:ac:12:00:02",
"IPv4Address": "172.18.0.2/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
```

## ๆญฅ้ชค 2๏ผšๅกซๅ……็คบไพ‹ๆ•ฐๆฎ

ๅœจ่ฟ™ไธ€ๆญฅไธญ๏ผŒๆˆ‘ไปฌๅฐ†ๅ‘ MySQL ๅ’Œ Redis ไปฅๅŠ Databend ไธญๆทปๅŠ ็คบไพ‹ๆ•ฐๆฎใ€‚

1. ๅœจ Databend ไธญ๏ผŒๅˆ›ๅปบไธ€ไธชๅไธบ `users_databend` ็š„่กจๅนถๆ’ๅ…ฅ็คบไพ‹็”จๆˆทๆ•ฐๆฎ๏ผš

```sql
CREATE TABLE users_databend (
id INT,
name VARCHAR(100) NOT NULL
);

INSERT INTO users_databend (id, name) VALUES
(1, 'Alice'),
(2, 'Bob'),
(3, 'Charlie');
```

2. ๅœจ MySQL ไธญ๏ผŒๅˆ›ๅปบไธ€ไธชๅไธบ `dict` ็š„ๆ•ฐๆฎๅบ“๏ผŒๅˆ›ๅปบไธ€ไธช `users` ่กจๅนถๆ’ๅ…ฅ็คบไพ‹ๆ•ฐๆฎ๏ผš

```sql
CREATE DATABASE dict;
USE dict;

CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL
);

INSERT INTO users (name, email) VALUES
('Alice', '[email protected]'),
('Bob', '[email protected]'),
('Charlie', '[email protected]');
```

3. ๅœจ Docker Desktop ๆˆ–้€š่ฟ‡ๅœจ็ปˆ็ซฏไธญ่ฟ่กŒ `docker ps` ๆ‰พๅˆฐๆ‚จ็š„ Redis ๅฎนๅ™จ ID๏ผš

![alt text](../../../../static/img/documents/tutorials/redis-container-id.png)

4. ไฝฟ็”จๆ‚จ็š„ Redis ๅฎนๅ™จ ID ่ฎฟ้—ฎ Redis CLI๏ผˆๅฐ† `14d50cc4d075` ๆ›ฟๆขไธบๆ‚จ็š„ๅฎž้™…ๅฎนๅ™จ ID๏ผ‰๏ผš

```bash
docker exec -it 14d50cc4d075 redis-cli
```

5. ๅœจ Redis CLI ไธญ่ฟ่กŒไปฅไธ‹ๅ‘ฝไปค๏ผŒๅฐ†็คบไพ‹็”จๆˆทๆ•ฐๆฎๆ’ๅ…ฅ Redis๏ผš

```bash
SET user:1 '{"notifications": "enabled", "theme": "dark"}'
SET user:2 '{"notifications": "disabled", "theme": "light"}'
SET user:3 '{"notifications": "enabled", "theme": "dark"}'
```

## ๆญฅ้ชค 3๏ผšๅˆ›ๅปบๅญ—ๅ…ธ

ๅœจ่ฟ™ไธ€ๆญฅไธญ๏ผŒๆˆ‘ไปฌๅฐ†ๅœจ Databend ไธญไธบ MySQL ๅ’Œ Redis ๅˆ›ๅปบๅญ—ๅ…ธ๏ผŒ็„ถๅŽไปŽ่ฟ™ไบ›ๅค–้ƒจๆ•ฐๆฎๆบๆŸฅ่ฏขๆ•ฐๆฎใ€‚

1. ๅœจ Databend ไธญ๏ผŒๅˆ›ๅปบไธ€ไธชๅไธบ `mysql_users` ็š„ๅญ—ๅ…ธ๏ผŒ่ฟžๆŽฅๅˆฐ MySQL ๅฎžไพ‹๏ผš

```sql
CREATE DICTIONARY mysql_users
(
id INT,
name STRING,
email STRING
)
PRIMARY KEY id
SOURCE(MySQL(
host='mysql'
port=3306
username='root'
password='admin'
db='dict'
table='users'
));
```

2. ๅˆ›ๅปบไธ€ไธชๅไธบ `mysql_users` ็š„ๅญ—ๅ…ธ๏ผŒ่ฟžๆŽฅๅˆฐ Redis ๅฎžไพ‹๏ผš

```sql
CREATE DICTIONARY redis_user_preferences
(
user_id STRING,
preferences STRING
)
PRIMARY KEY user_id
SOURCE(Redis(
host='redis'
port=6379
));
```

3. ๆŸฅ่ฏขๆˆ‘ไปฌไน‹ๅ‰ๅˆ›ๅปบ็š„ MySQL ๅ’Œ Redis ๅญ—ๅ…ธไธญ็š„ๆ•ฐๆฎใ€‚

```sql
SELECT
u.id,
u.name,
DICT_GET(mysql_users, 'email', u.id) AS email,
DICT_GET(redis_user_preferences, 'preferences', CONCAT('user:', TO_STRING(u.id))) AS user_preferences
FROM
users_databend AS u;
```

ไธŠ่ฟฐๆŸฅ่ฏขไปŽ `users_databend` ่กจไธญๆฃ€็ดข็”จๆˆทไฟกๆฏ๏ผŒๅŒ…ๆ‹ฌไป–ไปฌ็š„ ID ๅ’Œๅง“ๅ๏ผŒไปฅๅŠไปŽ MySQL ๅญ—ๅ…ธไธญ่Žทๅ–็š„็”ตๅญ้‚ฎไปถๅ’ŒไปŽ Redis ๅญ—ๅ…ธไธญ่Žทๅ–็š„็”จๆˆทๅๅฅฝใ€‚

```sql title='็ป“ๆžœ๏ผš'
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ id โ”‚ name โ”‚ dict_get(default.mysql_users, 'email', u.id) โ”‚ dict_get(default.redis_user_preferences, 'preferences', CONCAT('user:', TO_STRING(u.id))) โ”‚
โ”‚ Nullable(Int32) โ”‚ String โ”‚ Nullable(String) โ”‚ Nullable(String) โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ 1 โ”‚ Alice โ”‚ alice@example.com โ”‚ {"notifications": "enabled", "theme": "dark"} โ”‚
โ”‚ 2 โ”‚ Bob โ”‚ bob@example.com โ”‚ {"notifications": "disabled", "theme": "light"} โ”‚
โ”‚ 3 โ”‚ Charlie โ”‚ charlie@example.com โ”‚ {"notifications": "enabled", "theme": "dark"} โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
```

0 comments on commit 9aa260d

Please sign in to comment.