From e0410a356364a23a774a637c11e2651476a675d9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 11 Aug 2025 10:09:00 +0000 Subject: [PATCH 1/3] [INIT] Start translation to Simplified-Chinese --- .translation-init | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.translation-init b/.translation-init index 119ba29349..56554e6f7b 100644 --- a/.translation-init +++ b/.translation-init @@ -1 +1 @@ -Translation initialization: 2025-08-11T07:47:48.618469 \ No newline at end of file +Translation initialization: 2025-08-11T10:08:59.783083 From 35a70c8587fa836a15d3c01c3c1041a7411955da Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 11 Aug 2025 10:09:35 +0000 Subject: [PATCH 2/3] =?UTF-8?q?=F0=9F=8C=90=20Translate=20index.md=20to=20?= =?UTF-8?q?Simplified-Chinese?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/cn/developer/00-drivers/index.md | 38 +++++++++++++-------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/docs/cn/developer/00-drivers/index.md b/docs/cn/developer/00-drivers/index.md index 94cda1524b..34fd86a628 100644 --- a/docs/cn/developer/00-drivers/index.md +++ b/docs/cn/developer/00-drivers/index.md @@ -2,13 +2,13 @@ title: 驱动 --- -Databend 为多种编程语言提供官方驱动,使您能够从应用程序连接并交互 Databend。 +Databend 为多种编程语言提供了官方驱动,使你能够从应用程序连接到 Databend 并与之交互。 ## 快速入门 1. **选择语言** - 从 Python、Go、Node.js、Java 或 Rust 中选择 -2. **获取连接字符串** - 使用下方 DSN 格式 -3. **安装并连接** - 遵循各驱动的专属文档 +2. **获取连接字符串** - 使用下方的 DSN 格式 +3. **安装并连接** - 参考各驱动的专属文档 ## 连接字符串(DSN) @@ -18,30 +18,30 @@ Databend 为多种编程语言提供官方驱动,使您能够从应用程序 databend://user:pwd@host[:port]/[database][?sslmode=disable][&arg1=value1] ``` -> `user:pwd` 指 Databend 中的 SQL 用户。参见 [CREATE USER](/sql/sql-commands/ddl/user/user-create-user) 创建用户并授予权限。 +> `user:pwd` 指 Databend 中的 SQL 用户。参阅 [CREATE USER](/sql/sql-commands/ddl/user/user-create-user) 创建用户并授予权限。 ### 连接示例 -| 部署方式 | 连接字符串 | -|------------|-------------------| -| **自托管** | `databend://user:pwd@host:8000/database?sslmode=disable` | -| **Databend Cloud** | `databend://user:pwd@host:443/database?warehouse=wh` | +| 部署方式 | 连接字符串 | +| ------------------ | -------------------------------------------------------- | +| **自托管** | `databend://user:pwd@host:8000/database?sslmode=disable` | +| **Databend Cloud** | `databend://user:pwd@host:443/database?warehouse=wh` | ### 参数参考 -| 参数 | 描述 | 自托管 | Databend Cloud | 示例 | -|-----------|-------------|-------------|----------------|----------| -| `sslmode` | SSL 模式 | `disable`(必需) | 不使用 | `?sslmode=disable` | -| `warehouse` | Warehouse 名称 | 不使用 | 必需 | `?warehouse=compute_wh` | +| 参数 | 描述 | 自托管 | Databend Cloud | 示例 | +| ----------- | -------------- | -------------------- | -------------- | ----------------------- | +| `sslmode` | SSL 模式 | `disable`(必需) | 不使用 | `?sslmode=disable` | +| `warehouse` | Warehouse 名称 | 不使用 | 必需 | `?warehouse=compute_wh` | > **Databend Cloud**:[获取连接信息 →](/guides/cloud/using-databend-cloud/warehouses#obtaining-connection-information) ## 可用驱动 -| 语言 | 包 | 主要特性 | -|----------|---------|-------------| -| **[Python](./python)** | `databend-driver`
`databend-sqlalchemy` | • 同步/异步支持
• SQLAlchemy 方言
• 兼容 PEP 249 | -| **[Go](./golang)** | `databend-go` | • database/sql 接口
• 连接池
• 批量操作 | -| **[Node.js](./nodejs)** | `databend-driver` | • TypeScript 支持
• 基于 Promise 的 API
• 流式结果 | -| **[Java](./jdbc)** | `databend-jdbc` | • 兼容 JDBC 4.0
• 连接池
• 预处理语句 | -| **[Rust](./rust)** | `databend-driver` | • Async/await 支持
• 类型安全查询
• 零拷贝反序列化 | \ No newline at end of file +| 语言 | 包 | 主要特性 | +| ----------------------- | ------------------------------------------- | ------------------------------------------------------------------------- | +| **[Python](./python)** | `databend-driver`
`databend-sqlalchemy` | • 同步/异步支持
• SQLAlchemy 方言
• 兼容 PEP 249 | +| **[Go](./golang)** | `databend-go` | • database/sql 接口
• 连接池
• 批量操作 | +| **[Node.js](./nodejs)** | `databend-driver` | • TypeScript 支持
• 基于 Promise 的 API
• 流式结果 | +| **[Java](./jdbc)** | `databend-jdbc` | • 兼容 JDBC 4.0
• 连接池
• 预处理语句 | +| **[Rust](./rust)** | `databend-driver` | • Async/await 支持
• 类型安全查询
• 零拷贝反序列化 | \ No newline at end of file From fc9415c8b940339cb1320c15b721bd1678d63cb0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 11 Aug 2025 10:11:16 +0000 Subject: [PATCH 3/3] =?UTF-8?q?=F0=9F=8C=90=20Translate=20index.md=20to=20?= =?UTF-8?q?Simplified-Chinese?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...automating-json-log-loading-with-vector.md | 76 +++++++++---------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/docs/cn/tutorials/load/automating-json-log-loading-with-vector.md b/docs/cn/tutorials/load/automating-json-log-loading-with-vector.md index 98638a6845..25b15df612 100644 --- a/docs/cn/tutorials/load/automating-json-log-loading-with-vector.md +++ b/docs/cn/tutorials/load/automating-json-log-loading-with-vector.md @@ -1,44 +1,44 @@ --- -title: 使用 Vector 自动化 JSON 日志加载 +title: 使用 Vector 自动加载 JSON 日志 --- -在本教程中,我们将模拟在本地生成日志,使用 [Vector](https://vector.dev/) 收集它们,将它们存储在 S3 中,并使用计划任务自动将它们导入到 Databend Cloud 中。 +在本教程中,我们将模拟在本地生成日志,使用 [Vector](https://vector.dev/) 收集日志,将其存储到 S3,并通过定时任务自动将其摄取到 Databend Cloud。 -![使用 Vector 自动化 JSON 日志加载](@site/static/img/documents/tutorials/vector-tutorial.png) +![使用 Vector 自动加载 JSON 日志](@site/static/img/documents/tutorials/vector-tutorial.png) -## 开始之前 +## 准备工作 -在开始之前,请确保您已准备好以下先决条件: +开始前,请确保已准备好以下先决条件: -- **Amazon S3 Bucket**: 一个 S3 bucket,用于存储 Vector 收集的日志。[了解如何创建 S3 bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)。 -- **AWS 凭证**: AWS Access Key ID 和 Secret Access Key,具有访问您的 S3 bucket 的足够权限。[管理您的 AWS 凭证](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys)。 -- **AWS CLI**: 确保已安装 [AWS CLI](https://aws.amazon.com/cli/) 并配置了访问您的 S3 bucket 的必要权限。 -- **Docker**: 确保您的本地机器上已安装 [Docker](https://www.docker.com/),因为它将用于设置 Vector。 +- **Amazon S3 存储桶**:用于存放 Vector 收集的日志。 [了解如何创建 S3 存储桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)。 +- **AWS 凭证**:具备访问 S3 存储桶权限的 AWS Access Key ID 和 Secret Access Key。 [管理 AWS 凭证](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys)。 +- **AWS CLI**:确保已安装 [AWS CLI](https://aws.amazon.com/cli/) 并配置好访问 S3 存储桶所需的权限。 +- **Docker**:确保本地已安装 [Docker](https://www.docker.com/),用于部署 Vector。 -## 步骤 1:在 S3 Bucket 中创建目标文件夹 +## 第一步:在 S3 存储桶中创建目标文件夹 -要存储 Vector 收集的日志,请在您的 S3 bucket 中创建一个名为 logs 的文件夹。在本教程中,我们使用 `s3://databend-doc/logs/` 作为目标位置。 +为存放 Vector 收集的日志,请在 S3 存储桶中创建一个名为 logs 的文件夹。本教程使用 `s3://databend-doc/logs/` 作为目标路径。 -此命令在 `databend-doc` bucket 中创建一个名为 `logs` 的空文件夹: +以下命令在 databend-doc 存储桶中创建名为 logs 的空文件夹: ```bash aws s3api put-object --bucket databend-doc --key logs/ ``` -## 步骤 2:创建本地日志文件 +## 第二步:创建本地日志文件 -通过创建本地日志文件来模拟日志生成。在本教程中,我们使用 `/Users/eric/Documents/logs/app.log` 作为文件路径。 +通过创建本地日志文件来模拟日志生成。本教程使用 `/Users/eric/Documents/logs/app.log` 作为文件路径。 -将以下 JSON 行添加到文件中以表示示例日志事件: +将以下 JSON 行添加到文件中,作为示例日志事件: ```json title='app.log' {"user_id": 1, "event": "login", "timestamp": "2024-12-08T10:00:00Z"} {"user_id": 2, "event": "purchase", "timestamp": "2024-12-08T10:05:00Z"} ``` -## 步骤 3:配置并运行 Vector +## 第三步:配置并运行 Vector -1. 在您的本地机器上创建一个名为 `vector.yaml` 的 Vector 配置文件。在本教程中,我们在 `/Users/eric/Documents/vector.yaml` 中创建它,内容如下: +1. 在本地创建名为 `vector.yaml` 的 Vector 配置文件。本教程将其放在 `/Users/eric/Documents/vector.yaml`,内容如下: ```yaml title='vector.yaml' sources: @@ -63,16 +63,16 @@ sinks: - "extract_message" bucket: databend-doc region: us-east-2 - key_prefix: "logs/" - content_type: "text/plain" + key_prefix: "logs/" + content_type: "text/plain" encoding: - codec: "native_json" + codec: "native_json" auth: access_key_id: "" secret_access_key: "" ``` -2. 使用 Docker 启动 Vector,映射配置文件和本地日志目录: +2. 使用 Docker 启动 Vector,并映射配置文件和本地日志目录: ```bash docker run \ @@ -84,35 +84,35 @@ docker run \ timberio/vector:nightly-alpine ``` -3. 稍等片刻,然后检查是否有任何日志已同步到 S3 上的 `logs` 文件夹: +3. 稍等片刻,然后检查日志是否已同步到 S3 的 logs 文件夹: ```bash aws s3 ls s3://databend-doc/logs/ ``` -如果日志文件已成功同步到 S3,您应该看到类似于以下的输出: +若日志文件已成功同步到 S3,将看到类似以下输出: ```bash 2024-12-10 15:22:13 0 2024-12-10 17:52:42 112 1733871161-7b89e50a-6eb4-4531-8479-dd46981e4674.log.gz ``` -您现在可以从您的 bucket 下载同步的日志文件: +现在可从存储桶下载已同步的日志文件: ```bash aws s3 cp s3://databend-doc/logs/1733871161-7b89e50a-6eb4-4531-8479-dd46981e4674.log.gz ~/Documents/ ``` -与原始日志相比,同步的日志采用 NDJSON 格式,每个记录都包装在一个外部 `log` 字段中: +与原始日志相比,同步后的日志为 NDJSON 格式,每条记录被包裹在外层 `log` 字段中: ```json {"log":{"event":"login","timestamp":"2024-12-08T10:00:00Z","user_id":1}} {"log":{"event":"purchase","timestamp":"2024-12-08T10:05:00Z","user_id":2}} ``` -## 步骤 4:在 Databend Cloud 中创建任务 +## 第四步:在 Databend Cloud 中创建任务 -1. 打开一个 worksheet,并创建一个外部 Stage,链接到您的 bucket 中的 `logs` 文件夹: +1. 打开工作表,创建一个指向存储桶中 logs 文件夹的外部 Stage: ```sql CREATE STAGE mylog 's3://databend-doc/logs/' CONNECTION=( @@ -121,7 +121,7 @@ CREATE STAGE mylog 's3://databend-doc/logs/' CONNECTION=( ); ``` -成功创建 Stage 后,您可以列出其中的文件: +Stage 创建成功后,可列出其中的文件: ```sql LIST @mylog; @@ -133,7 +133,7 @@ LIST @mylog; └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ ``` -2. 创建一个表,其列映射到日志中的字段: +2. 创建与日志字段对应的表: ```sql CREATE TABLE logs ( @@ -143,7 +143,7 @@ CREATE TABLE logs ( ); ``` -3. 创建一个计划任务,将日志从外部 Stage 加载到 `logs` 表中: +3. 创建定时任务,将日志从外部 Stage 加载到 logs 表: ```sql CREATE TASK IF NOT EXISTS myvectortask @@ -151,13 +151,13 @@ CREATE TASK IF NOT EXISTS myvectortask SCHEDULE = 1 MINUTE SUSPEND_TASK_AFTER_NUM_FAILURES = 3 AS -COPY INTO logs +COPY INTO logs FROM ( SELECT $1:log:event, $1:log:timestamp, $1:log:user_id FROM @mylog/ ) -FILE_FORMAT = (TYPE = NDJSON, COMPRESSION = AUTO) -MAX_FILES = 10000 +FILE_FORMAT = (TYPE = NDJSON, COMPRESSION = AUTO) +MAX_FILES = 10000 PURGE = TRUE; ``` @@ -167,7 +167,7 @@ PURGE = TRUE; ALTER TASK myvectortask RESUME; ``` -稍等片刻,然后检查日志是否已加载到表中: +稍等片刻,检查日志是否已加载到表中: ```sql SELECT * FROM logs; @@ -180,16 +180,16 @@ SELECT * FROM logs; └──────────────────────────────────────────────────────────┘ ``` -如果您现在运行 `LIST @mylog;`,您将看不到任何列出的文件。这是因为该任务配置为 `PURGE = TRUE`,这会在加载日志后从 S3 中删除同步的文件。 +此时若运行 `LIST @mylog;`,将看不到任何文件。这是因为任务配置了 `PURGE = TRUE`,加载日志后会从 S3 删除已同步的文件。 -现在,让我们模拟在本地日志文件 `app.log` 中生成另外两个日志: +现在,让我们在本地日志文件 `app.log` 中再模拟生成两条日志: ```bash echo '{"user_id": 3, "event": "logout", "timestamp": "2024-12-08T10:10:00Z"}' >> /Users/eric/Documents/logs/app.log echo '{"user_id": 4, "event": "login", "timestamp": "2024-12-08T10:15:00Z"}' >> /Users/eric/Documents/logs/app.log ``` -稍等片刻,让日志同步到 S3(新文件应出现在 `logs` 文件夹中)。然后,计划任务会将新日志加载到表中。如果您再次查询该表,您将找到这些日志: +稍等片刻,日志将同步到 S3(logs 文件夹中会出现新文件)。随后定时任务会把新日志加载到表中。再次查询表,即可看到这些日志: ```sql SELECT * FROM logs; @@ -202,4 +202,4 @@ SELECT * FROM logs; │ login │ 2024-12-08 10:00:00 │ 1 │ │ purchase │ 2024-12-08 10:05:00 │ 2 │ └──────────────────────────────────────────────────────────┘ -``` +``` \ No newline at end of file