This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris-website.git
The following commit(s) were added to refs/heads/master by this push:
new 4ee2bb807a3f docs(i18n): machine Korean translation candidates (#4540)
4ee2bb807a3f is described below
commit 4ee2bb807a3f1dc1db572384d8f3cffc8c38f9c2
Author: Mingyu Chen (Rayner) <[email protected]>
AuthorDate: Thu Oct 29 01:59:24 2026 +0000
docs(i18n): machine Korean translation candidates (#4540)
## Korean translation candidate
Source commit: `5e9ed76441890c1096e7c562746d00702e93f038`
Model: `gpt-6-sol`; glossary: `1`
Review status: machine. Korean proofreading and the normal PR checks are
still required.
| Action | Version | English source | SHA-256 prefix | Generation |
| --- | --- | --- | --- | --- |
| update | current |
[`docs/lakehouse/catalogs/iceberg-catalog.mdx`](https://github.com/apache/doris-website/blob/5e9ed76441890c1096e7c562746d00702e93f038/docs/lakehouse/catalogs/iceberg-catalog.mdx)
| `35a6c84279e1` | incremental (2.1%) |
## Failed or skipped tasks
None.
## Candidates retained with warnings
- `docs/lakehouse/catalogs/iceberg-catalog.mdx`: third attempt retained
for review. protected-content: Restore protected source content:
protected node 517: expected ["inlineCode",null,null,"FOR VERSION AS
OF"]; received ["inlineCode",null,null,"$labels"] protected node 518:
expected ["inlineCode",null,null,"$labels"]; received
["inlineCode",null,null,"FOR VERSION AS OF"]
## Validation
Updates at or below 30% translate only changed Markdown/MDX blocks and
preserve other target blocks.
Change size is the sum of max(removed, added) non-empty English lines
per diff hunk, divided by the larger old/new line count.
New documents, larger updates, glossary changes or baselines that cannot
be aligned use full translation.
Generation uses at most three attempts per document. Deletions and
code-only updates may need no model call.
Each retry receives the earlier validation errors. Third-attempt content
issues are retained as warnings above.
Full attempt history and diagnostics are in generation.json and the page
state records.
Committed source hashes, managed paths and target/state hashes are
checked before applying candidates.
Master is checked before each model call and before publishing:
unrelated merges are allowed, a page changed on master is dropped, and a
translation configuration or tooling change discards the batch.
The publisher runs the shared PR translation-state, syntax and
internal-link checks before pushing.
The normal PR build and human proofreading are still required before
merging.
<!-- korean-translation-automation:v1
bot-head=fc3f33c3245cfac063f753368ea307fde606155c -->
Shared PR admission checks: passed (translation state, syntax, internal
links).
Co-authored-by: morningman <[email protected]>
---
.../current/lakehouse/catalogs/iceberg-catalog.mdx | 84 ++++++++++++++++++++++
.../lakehouse/catalogs/iceberg-catalog.json | 60 +++++++++++-----
2 files changed, 128 insertions(+), 16 deletions(-)
diff --git
a/i18n/ko/docusaurus-plugin-content-docs/current/lakehouse/catalogs/iceberg-catalog.mdx
b/i18n/ko/docusaurus-plugin-content-docs/current/lakehouse/catalogs/iceberg-catalog.mdx
index 30d9d339ff18..4d87e0a21332 100644
---
a/i18n/ko/docusaurus-plugin-content-docs/current/lakehouse/catalogs/iceberg-catalog.mdx
+++
b/i18n/ko/docusaurus-plugin-content-docs/current/lakehouse/catalogs/iceberg-catalog.mdx
@@ -222,6 +222,8 @@ ORDER BY engine_name, entry_name;
| Iceberg Rest Catalog | ✅ | ✅ | 서비스 제공자에 따라 다름 | 서비스 제공자에
따라 다름 | 서비스 제공자에 따라 다름 |
| FileSystem | ✅ | ✅ | ✅
| ✅ | ✅ |
+`labels` 시스템 테이블은 5.0.0 버전부터 지원되며 Iceberg REST Catalog에서만 사용할 수 있습니다. 자세한 내용은
아래 [labels](#labels)를 참조하세요.
+
## 지원되는 스토리지 시스템 {#supported-storage-systems}
* [HDFS](../storages/hdfs.md)
@@ -1725,6 +1727,8 @@ SELECT * FROM iceberg_table$history;
> `all_manifests` 시스템 테이블은 4.0.4 버전부터 지원됩니다.
>
> `position_deletes` 시스템 테이블은 4.1.4 버전부터 지원됩니다.
+>
+> `labels` 시스템 테이블은 5.0.0 버전부터 지원되며 Iceberg REST Catalog에서만 사용할 수 있습니다.
:::caution 동작 변경(4.1.4)
@@ -1819,6 +1823,86 @@ SELECT * FROM iceberg_table$history;
+----------------------------+---------------------+---------------------+---------------------+
```
+### labels
+
+> 이 기능은 5.0.0 버전부터 지원됩니다.
+
+REST Catalog가 Iceberg 테이블에 제공하는 테이블 수준(`object`) 및 필드 수준(`field`) 라벨을 표시합니다.
라벨의 키-값 쌍마다 한 행이 표시됩니다. 테이블 소유권이나 필드의 데이터 분류 등의 정보를 확인할 때 사용합니다.
+
+이 시스템 테이블은 `iceberg.catalog.type`이 `rest`일 때만 사용할 수 있습니다. Doris에서 추가로 설정할 항목은
없습니다. REST Catalog 서비스는 테이블을 로드할 때 라벨을 반환하며, 라벨의 생성과 수정은 서비스 제공자를 통해 수행합니다. 이
라벨은 테이블이나 필드를 설명하며 [refs](#refs)에 표시되는 스냅샷 Tag와는 별개입니다.
+
+**필드:**
+
+| 필드 | 유형 | 설명 |
+| --- | --- | --- |
+| `scope` | `TEXT` | 라벨의 적용 범위입니다. 테이블 수준 라벨은 `object`, 필드 수준 라벨은 `field`입니다. |
+| `field_id` | `INT` | Iceberg 필드 ID입니다. 테이블 수준 라벨에서는 `NULL`입니다. |
+| `field_name` | `TEXT` | 현재 테이블 스키마를 기준으로 확인한 필드 이름입니다. 중첩 필드는
`address.city`처럼 전체 경로를 사용합니다. 테이블 수준 라벨이거나 필드 ID가 현재 스키마에 없으면 `NULL`입니다. |
+| `key` | `TEXT` | 라벨 키입니다. `key`는 Doris의 예약어이므로 SQL에서 이 열을 명시적으로 참조할 때는 백틱으로
감싸야 합니다. |
+| `value` | `TEXT` | 라벨 값입니다. |
+
+**쿼리 예시:**
+
+다음 예시는 `iceberg_ctl` Catalog가 [Iceberg REST Catalog](#iceberg-rest-catalog)에
설명된 대로 설정되어 있고, `iceberg_db.iceberg_tbl` 테이블이 존재하며, 현재 사용자에게 이 테이블을 쿼리할 권한이 있다고
가정합니다. REST Catalog 서비스에는 다음 라벨이 설정되어 있으며, 서비스가 이를 반환합니다:
+
+- 테이블 수준 라벨: `owner=team-a`.
+- `email` 필드(필드 ID `2`)의 라벨: `classification=pii`.
+- 중첩 필드 `address.city`(필드 ID `5`)의 라벨: `classification=location`.
+
+모든 라벨을 적용 범위, 필드 ID, 라벨 키 순으로 정렬하여 쿼리합니다:
+
+```sql
+SELECT * FROM iceberg_ctl.iceberg_db.iceberg_tbl$labels
+ORDER BY scope, field_id, `key`;
+```
+
+결과:
+
+```text
++--------+----------+--------------+----------------+----------+
+| scope | field_id | field_name | key | value |
++--------+----------+--------------+----------------+----------+
+| field | 2 | email | classification | pii |
+| field | 5 | address.city | classification | location |
+| object | NULL | NULL | owner | team-a |
++--------+----------+--------------+----------------+----------+
+```
+
+`pii`로 분류된 필드를 찾습니다:
+
+```sql
+SELECT field_name, `key`, value
+FROM iceberg_ctl.iceberg_db.iceberg_tbl$labels
+WHERE scope = 'field' AND `key` = 'classification' AND value = 'pii';
+```
+
+결과:
+
+```text
++------------+----------------+-------+
+| field_name | key | value |
++------------+----------------+-------+
+| email | classification | pii |
++------------+----------------+-------+
+```
+
+**캐싱 및 새로고침:**
+
+라벨은 테이블 메타데이터와 함께 캐시되며 `meta.cache.iceberg.table.ttl-second` 설정을 따릅니다. 서비스에서
라벨을 변경한 후 업데이트된 라벨을 가져오려면 `$labels`를 쿼리하기 전에 원본 테이블을 새로고침하세요:
+
+```sql
+REFRESH TABLE iceberg_ctl.iceberg_db.iceberg_tbl;
+```
+
+새로고침 후 다음 `$labels` 쿼리는 테이블을 다시 로드하고 서비스가 반환한 라벨을 읽습니다.
`meta.cache.iceberg.table.ttl-second`를 `0`으로 설정하면 테이블 메타데이터 캐시가 비활성화되어 쿼리마다 라벨을
다시 로드합니다. 캐시 설정에 대한 자세한 내용은 [메타데이터 캐시](#meta-cache)를 참조하세요.
+
+**참고:**
+
+- REST Catalog 서비스가 라벨을 반환하지 않으면 쿼리 결과는 비어 있습니다. 스냅샷이 없는 테이블도 서비스가 라벨을 제공하면
라벨을 반환할 수 있습니다. `COUNT(*)`는 원본 테이블의 데이터 행이 아닌 라벨 키-값 쌍의 수를 셉니다.
+- 라벨은 스냅샷별로 버전이 관리되지 않습니다. `$labels`에 `FOR VERSION AS OF`를 사용해도 과거 라벨을 가져올 수
없습니다. 쿼리는 여전히 현재 로드된 테이블의 라벨을 반환하며, 필드 이름은 현재 스키마를 기준으로 확인합니다.
+- 필드 라벨은 필드 ID와 연결됩니다. 필드 이름이 변경되면 `field_name`에 새 이름이 표시됩니다. 필드가 삭제된 후에도 서비스가
해당 라벨을 반환한다면 `field_id`는 유지되고 `field_name`은 `NULL`이 됩니다.
+- REST Catalog가 아닌 Catalog는 `$labels`를 지원하지 않으며, 이를 쿼리하면 `Unknown sys table`
오류가 반환됩니다. 서버 측 스캔 계획이 필요한 REST Catalog도 이 시스템 테이블을 지원하지 않습니다.
+
### manifests {#manifests}
테이블의 manifest 파일 정보를 표시합니다.
diff --git
a/translations/state/ko/pages/default/current/lakehouse/catalogs/iceberg-catalog.json
b/translations/state/ko/pages/default/current/lakehouse/catalogs/iceberg-catalog.json
index a42d329cda7b..7958bf67e8c3 100644
---
a/translations/state/ko/pages/default/current/lakehouse/catalogs/iceberg-catalog.json
+++
b/translations/state/ko/pages/default/current/lakehouse/catalogs/iceberg-catalog.json
@@ -8,34 +8,62 @@
"sourceLocale": "en",
"sourcePath": "docs/lakehouse/catalogs/iceberg-catalog.mdx",
"targetPath":
"i18n/ko/docusaurus-plugin-content-docs/current/lakehouse/catalogs/iceberg-catalog.mdx",
- "sourceCommit": "82ccae858254f24b1b3a85f181ec289e386d33ae",
- "sourceHash":
"5f9e59a11f12864bda19ad944ec51c7d8426b4f44f914da483a5b02f322381c9",
- "sourceTechnicalHash":
"e9f8c84f129dd0fdca3d1ed9970af0fb66804333320cfd395d29e62ea0cb1a80",
- "targetHash":
"75f3dc20f7330de565e2441db21f37e5be2650a30e6bde21929abcc218154650",
+ "sourceCommit": "5e9ed76441890c1096e7c562746d00702e93f038",
+ "sourceHash":
"35a6c84279e184d0256d95f0eb0dab459450461e9a5b59f592f704f9b46faa9d",
+ "sourceTechnicalHash":
"f704deb3aabd4e7ad43ca6247650398b5dbce199408e5a34346a3af87a6fcfb7",
+ "targetHash":
"d857af27707f1d87500602b9b40f781661f4f30dc707af6dd0da664dc0cde15b",
"reviewStatus": "machine",
"ownership": "machine",
- "translatedAt": "2026-10-20T20:42:23.530Z",
+ "translatedAt": "2026-10-28T05:07:02.492Z",
"glossaryVersion": "1",
"generation": {
"policy": "whole-document-v1",
- "previousSourceHash":
"4563a78906e476f20ab16e10bb90e7d63df7ccf65827e3aa40a7923adaeaff68",
- "previousTargetHash":
"0fa20645ae42eb0afe1d31856284428c4b5b8aa763eb80ae162c5ffaa7452037",
+ "previousSourceHash":
"5f9e59a11f12864bda19ad944ec51c7d8426b4f44f914da483a5b02f322381c9",
+ "previousTargetHash":
"75f3dc20f7330de565e2441db21f37e5be2650a30e6bde21929abcc218154650",
"mode": "incremental",
"reason": "source-change-within-30-percent",
"sourceChange": {
- "changedLines": 27,
- "totalLines": 2767,
- "ratio": 0.009757860498735092
+ "changedLines": 60,
+ "totalLines": 2801,
+ "ratio": 0.021420921099607283
},
- "attempts": 1,
- "acceptedWithWarnings": false,
- "sourceHash":
"5f9e59a11f12864bda19ad944ec51c7d8426b4f44f914da483a5b02f322381c9",
- "targetHash":
"75f3dc20f7330de565e2441db21f37e5be2650a30e6bde21929abcc218154650",
- "warnings": [],
+ "attempts": 3,
+ "acceptedWithWarnings": true,
+ "sourceHash":
"35a6c84279e184d0256d95f0eb0dab459450461e9a5b59f592f704f9b46faa9d",
+ "targetHash":
"d857af27707f1d87500602b9b40f781661f4f30dc707af6dd0da664dc0cde15b",
+ "warnings": [
+ {
+ "check": "protected-content",
+ "message": "Restore protected source content:\nprotected node 517:
expected [\"inlineCode\",null,null,\"FOR VERSION AS OF\"]; received
[\"inlineCode\",null,null,\"$labels\"]\nprotected node 518: expected
[\"inlineCode\",null,null,\"$labels\"]; received
[\"inlineCode\",null,null,\"FOR VERSION AS OF\"]"
+ }
+ ],
"history": [
{
"attempt": 1,
- "issues": []
+ "issues": [
+ {
+ "check": "protected-content",
+ "message": "Restore protected source content:\nprotected node
494: expected [\"inlineCode\",null,null,\"iceberg_ctl\"]; received
[\"link\",\"#iceberg-rest-catalog\",null]\nprotected node 495: expected
[\"link\",\"#iceberg-rest-catalog\",null]; received
[\"inlineCode\",null,null,\"iceberg_ctl\"]\nprotected node 517: expected
[\"inlineCode\",null,null,\"FOR VERSION AS OF\"]; received
[\"inlineCode\",null,null,\"$labels\"]"
+ }
+ ]
+ },
+ {
+ "attempt": 2,
+ "issues": [
+ {
+ "check": "protected-content",
+ "message": "Restore protected source content:\nprotected node
517: expected [\"inlineCode\",null,null,\"FOR VERSION AS OF\"]; received
[\"inlineCode\",null,null,\"$labels\"]\nprotected node 518: expected
[\"inlineCode\",null,null,\"$labels\"]; received
[\"inlineCode\",null,null,\"FOR VERSION AS OF\"]"
+ }
+ ]
+ },
+ {
+ "attempt": 3,
+ "issues": [
+ {
+ "check": "protected-content",
+ "message": "Restore protected source content:\nprotected node
517: expected [\"inlineCode\",null,null,\"FOR VERSION AS OF\"]; received
[\"inlineCode\",null,null,\"$labels\"]\nprotected node 518: expected
[\"inlineCode\",null,null,\"$labels\"]; received
[\"inlineCode\",null,null,\"FOR VERSION AS OF\"]"
+ }
+ ]
}
]
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]