This is an automated email from the ASF dual-hosted git repository.
lzljs3620320 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/paimon.git
The following commit(s) were added to refs/heads/master by this push:
new c70d9afd4b [doc] Add REST catalog doc (#5100)
c70d9afd4b is described below
commit c70d9afd4bcc1ba621e436f55b4fbd1357189a24
Author: jerry <[email protected]>
AuthorDate: Tue Feb 18 14:49:38 2025 +0800
[doc] Add REST catalog doc (#5100)
---
docs/README.md | 3 ++
docs/content/concepts/catalog.md | 6 ++-
docs/content/concepts/data-types.md | 2 +-
docs/content/concepts/rest-catalog.md | 88 ++++++++++++++++++++++++++++++++++
docs/content/concepts/spec/_index.md | 2 +-
docs/content/concepts/system-tables.md | 2 +-
docs/content/concepts/table-types.md | 2 +-
docs/static/img/rest-catalog.svg | 2 +
8 files changed, 102 insertions(+), 5 deletions(-)
diff --git a/docs/README.md b/docs/README.md
index de0a7d16b4..fb96248516 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -10,6 +10,9 @@ that you always have docs corresponding to your checked-out
version.
Make sure you have installed Hugo on your system.
Note: An extended version of Hugo <= 0.124.1 is required. you can Find this at
[Hugo](https://github.com/gohugoio/hugo/releases/tag/v0.124.1)
+```sh
+go install -tags extended,withdeploy github.com/gohugoio/[email protected]
+```
From this directory:
diff --git a/docs/content/concepts/catalog.md b/docs/content/concepts/catalog.md
index 9775113a6e..051df2e1cc 100644
--- a/docs/content/concepts/catalog.md
+++ b/docs/content/concepts/catalog.md
@@ -32,11 +32,12 @@ access the Paimon table.
## Catalogs
-Paimon catalogs currently support three types of metastores:
+Paimon catalogs currently support four types of metastores:
* `filesystem` metastore (default), which stores both metadata and table files
in filesystems.
* `hive` metastore, which additionally stores metadata in Hive metastore.
Users can directly access the tables from Hive.
* `jdbc` metastore, which additionally stores metadata in relational databases
such as MySQL, Postgres, etc.
+* `rest` metastore, which is designed to provide a lightweight way to access
any catalog backend from a single client.
## Filesystem Catalog
@@ -88,3 +89,6 @@ CREATE CATALOG my_jdbc WITH (
'warehouse' = 'hdfs:///path/to/warehouse'
);
```
+## REST Catalog
+By using the Paimon REST catalog, changes to the catalog will be directly
stored in a remote catalog server which exposed through REST API.
+See [Paimon REST Catalog]({{< ref "concepts/rest-catalog" >}}).
diff --git a/docs/content/concepts/data-types.md
b/docs/content/concepts/data-types.md
index d778c7c8f1..4bee2dba2f 100644
--- a/docs/content/concepts/data-types.md
+++ b/docs/content/concepts/data-types.md
@@ -1,6 +1,6 @@
---
title: "Data Types"
-weight: 7
+weight: 8
type: docs
aliases:
- /concepts/data-types.html
diff --git a/docs/content/concepts/rest-catalog.md
b/docs/content/concepts/rest-catalog.md
new file mode 100644
index 0000000000..4645d86418
--- /dev/null
+++ b/docs/content/concepts/rest-catalog.md
@@ -0,0 +1,88 @@
+---
+title: "RESTCatalog"
+weight: 5
+type: docs
+aliases:
+- /concepts/rest-catalog.html
+---
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+# RESTCatalog
+## Overview
+
+Paimon REST Catalog provides a lightweight implementation to access the
catalog service. Paimon could access the catalog service through a catalog
server which implements REST API.You can see all APIs in [REST
API](https://github.com/apache/paimon/blob/master/paimon-open-api/rest-catalog-open-api.yaml).
+
+{{< img src="/img/rest-catalog.svg">}}
+
+## Key Features
+
+1. User Defined Technology-Specific Logic Implementation
+ - All technology-specific logic within the catalog server.
+ - This ensures that the user can define logic that could be owned by the
user.
+2. Decoupled Architecture
+ - The REST Catalog interacts with the catalog server through a well-defined
REST API.
+ - This decoupling allows for independent evolution and scaling of the
catalog server and clients.
+3. Language Agnostic
+ - Developers can implement the catalog server in any programming language,
provided that it adheres to the specified REST API.
+ - This flexibility enables teams to utilize their existing tech stacks and
expertise.
+4. Support for Any Catalog Backend
+ - Paimon REST Catalog is designed to work with any catalog backend.
+ - As long as they implement the relevant APIs, they can seamlessly integrate
with Paimon REST Catalog.
+
+## Usage
+- Bear token
+```sql
+CREATE CATALOG `paimon-rest-catalog`
+WITH (
+'type' = 'paimon',
+'uri' = '<catalog server url>',
+'metastore' = 'rest',
+'token.provider' = 'bear'
+'token' = '<token>'
+);
+```
+- DLF ak
+```sql
+CREATE CATALOG `paimon-rest-catalog`
+WITH (
+'type' = 'paimon',
+'uri' = '<catalog server url>',
+'metastore' = 'rest',
+'token.provider' = 'dlf',
+'dlf.accessKeyId'='<accessKeyId>',
+'dlf.accessKeySecret'='<accessKeySecret>',
+);
+```
+- DLF token path
+```sql
+CREATE CATALOG `paimon-rest-catalog`
+WITH (
+'type' = 'paimon',
+'uri' = '<catalog server url>',
+'metastore' = 'rest',
+'token.provider' = 'dlf',
+'dlf.token-path' = '<token-path>'
+);
+```
+
+## Conclusion
+
+Paimon REST Catalog offers adaptable solution for accessing the catalog
service. According to [REST
API](https://github.com/apache/paimon/blob/master/paimon-open-api/rest-catalog-open-api.yaml)
is decoupled from the catalog service.
+Technology-specific Logic is encapsulated on the catalog server. At the same
time, the catalog server supports any backend and languages.
\ No newline at end of file
diff --git a/docs/content/concepts/spec/_index.md
b/docs/content/concepts/spec/_index.md
index cc148d6a8b..03bcd72234 100644
--- a/docs/content/concepts/spec/_index.md
+++ b/docs/content/concepts/spec/_index.md
@@ -1,7 +1,7 @@
---
title: Specification
bookCollapseSection: true
-weight: 8
+weight: 9
---
<!--
Licensed to the Apache Software Foundation (ASF) under one
diff --git a/docs/content/concepts/system-tables.md
b/docs/content/concepts/system-tables.md
index aea72c000a..5385f7961f 100644
--- a/docs/content/concepts/system-tables.md
+++ b/docs/content/concepts/system-tables.md
@@ -1,6 +1,6 @@
---
title: "System Tables"
-weight: 6
+weight: 7
type: docs
aliases:
- /concepts/system-tables.html
diff --git a/docs/content/concepts/table-types.md
b/docs/content/concepts/table-types.md
index b5a1fafa3d..1a04096d5c 100644
--- a/docs/content/concepts/table-types.md
+++ b/docs/content/concepts/table-types.md
@@ -1,6 +1,6 @@
---
title: "Table Types"
-weight: 5
+weight: 6
type: docs
aliases:
- /concepts/table-types.html
diff --git a/docs/static/img/rest-catalog.svg b/docs/static/img/rest-catalog.svg
new file mode 100644
index 0000000000..629ee91a33
--- /dev/null
+++ b/docs/static/img/rest-catalog.svg
@@ -0,0 +1,2 @@
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0
366.587890625 494.02929687499994" width="366.587890625"
height="494.02929687499994"><!-- svg-source:excalidraw
--><metadata></metadata><defs><style class="style-fonts">
+ @font-face { font-family: Excalifont; src:
url(data:font/woff2;base64,d09GMgABAAAAAA5kAA4AAAAAGDgAAA4PAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbhEwcNAZgAIEEEQgKogiZFQswAAE2AiQDXAQgBYMYByAbpBIjA3WBsYoi+4sE25j2QxehJBabNTuooR3005Yu/9eytcYwEK7JBTn1CFpmeCWI+rHf3j35qCU8iXo1S2aVZFaKT/eQKRkS0StveLr57+6SLnDIg+LAwNk1qbVven9fJkbs9hcABhgkCXjzuVlPWni/GyCElZNkkzNx5JuWv+hJO7QjSOJIbPWyJ6YDfOl/AP/+/n/7tTzrVbto3VB3sdIp7c9H7n+YPRaLMySTtJIIkUxoNJpqVkmc7qWQG7VBqbxk65hVzMJo1I+I8QgQB74IimDIACFADBUMMD19qblAeHp7
[...]
\ No newline at end of file