This is an automated email from the ASF dual-hosted git repository.

fanng pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gravitino.git


The following commit(s) were added to refs/heads/main by this push:
     new baa1e9cfa [#4171] feat(docs): Add Paimon Catalog doc (#4192)
baa1e9cfa is described below

commit baa1e9cfaa6234845fd33cc51a0b14c5816f4562
Author: cai can <[email protected]>
AuthorDate: Thu Jul 25 17:23:02 2024 +0800

    [#4171] feat(docs): Add Paimon Catalog doc (#4192)
    
    ### What changes were proposed in this pull request?
    Add Paimon Catalog doc
    
    ### Why are the changes needed?
    Fix: https://github.com/apache/gravitino/issues/4171
    
    ### Does this PR introduce _any_ user-facing change?
    No.
    
    ### How was this patch tested?
    No testing required.
    
    ---------
    
    Co-authored-by: caican <[email protected]>
---
 docs/lakehouse-paimon-catalog.md | 149 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 149 insertions(+)

diff --git a/docs/lakehouse-paimon-catalog.md b/docs/lakehouse-paimon-catalog.md
new file mode 100644
index 000000000..7265073a5
--- /dev/null
+++ b/docs/lakehouse-paimon-catalog.md
@@ -0,0 +1,149 @@
+---
+title: "Paimon catalog"
+slug: /lakehouse-Paimon-catalog
+keywords:
+  - lakehouse
+  - Paimon
+  - metadata
+license: "This software is licensed under the Apache License version 2."
+---
+
+## Introduction
+
+Apache Gravitino provides the ability to manage Apache Paimon metadata.
+
+### Requirements
+
+:::info
+Builds with Apache Paimon `0.8.0`.
+:::
+
+## Catalog
+
+### Catalog capabilities
+
+- Works as a catalog proxy, supporting `FilesystemCatalog`.
+- Supports DDL operations for Paimon schemas and tables.
+
+- Doesn't support `JdbcCatalog` and `HiveCatalog` catalog backend now.
+- Doesn't support alterTable now.
+- Doesn't support alterSchema.
+
+### Catalog properties
+
+| Property name                                      | Description             
                                                                                
                                                                                
                    | Default value          | Required                         
                               | Since Version |
+|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------|-----------------------------------------------------------------|---------------|
+| `catalog-backend`                                  | Catalog backend of 
Gravitino Paimon catalog. Only supports `filesystem` now.                       
                                                                                
                         | (none)                 | Yes                         
                                    | 0.6.0         |
+| `uri`                                              | The URI configuration 
of the Paimon catalog. `thrift://127.0.0.1:9083` or 
`jdbc:postgresql://127.0.0.1:5432/db_name` or 
`jdbc:mysql://127.0.0.1:3306/metastore_db`. It is optional for 
`FilesystemCatalog`. | (none)                 | required if the value of 
`catalog-backend` is not `filesystem`. | 0.6.0         |
+| `warehouse`                                        | Warehouse directory of 
catalog. `file:///user/hive/warehouse-paimon/` for local fs or 
`hdfs://namespace/hdfs/path` for HDFS.                                          
                                      | (none)                 | Yes            
                                                 | 0.6.0         |
+| `authentication.type`                              | The type of 
authentication for Paimon catalog backend, currently Gravitino only supports 
`Kerberos` and `simple`.                                                        
                                   | `simple`               | No                
                                              | 0.6.0         |
+| `authentication.kerberos.principal`                | The principal of the 
Kerberos authentication.                                                        
                                                                                
                       | (none)                 | required if the value of 
`authentication.type` is Kerberos.     | 0.6.0         |
+| `authentication.kerberos.keytab-uri`               | The URI of The keytab 
for the Kerberos authentication.                                                
                                                                                
                      | (none)                 | required if the value of 
`authentication.type` is Kerberos.     | 0.6.0         |
+| `authentication.kerberos.check-interval-sec`       | The check interval of 
Kerberos credential for Paimon catalog.                                         
                                                                                
                      | 60                     | No                             
                                 | 0.6.0         |
+| `authentication.kerberos.keytab-fetch-timeout-sec` | The fetch timeout of 
retrieving Kerberos keytab from `authentication.kerberos.keytab-uri`.           
                                                                                
                       | 60                     | No                            
                                  | 0.6.0         |
+
+
+Any properties not defined by Gravitino with `gravitino.bypass.` prefix will 
pass to Paimon catalog properties and HDFS configuration. For example, if 
specify `gravitino.bypass.table.type`, `table.type` will pass to Paimon catalog 
properties.
+
+### Catalog operations
+
+Please refer to [Manage Relational Metadata Using 
Gravitino](./manage-relational-metadata-using-gravitino.md#catalog-operations) 
for more details.
+
+## Schema 
+
+### Schema capabilities
+
+- Supporting createSchema, dropSchema, loadSchema and listSchema.
+- Supporting cascade drop schema.
+
+- Doesn't support alterSchema.
+
+### Schema properties
+
+- Doesn't support specify location and store any schema properties when 
createSchema for FilesystemCatalog now.
+- Doesn't return any schema properties when loadSchema for FilesystemCatalog 
now.
+- Doesn't support store schema comment for FilesystemCatalog now.
+
+### Schema operations
+
+Please refer to [Manage Relational Metadata Using 
Gravitino](./manage-relational-metadata-using-gravitino.md#schema-operations) 
for more details.
+
+## Table 
+
+### Table capabilities
+
+- Supporting createTable, dropTable, loadTable and listTable.
+```
+dropTable will delete the table location directly, similar with purgeTable.
+```
+- Supporting Column default value through table properties, such as 
`fields.{columnName}.default-value`.
+
+- Doesn't support alterTable now.
+
+#### Table partitions
+
+- Doesn't support table partition now.
+
+### Table sort orders
+
+- Doesn't support table sort orders.
+
+### Table distributions
+
+- Only supporting `NoneDistribution` now.
+
+### Table indexes
+
+- Doesn't support table indexes.
+
+### Table column types
+
+| Gravitino Type                | Apache Paimon Type             |
+|-------------------------------|--------------------------------|
+| `Sturct`                      | `Row`                          |
+| `Map`                         | `Map`                          |
+| `Array`                       | `Array`                        |
+| `Boolean`                     | `Boolean`                      |
+| `Byte`                        | `TinyInt`                      |
+| `Short`                       | `SmallInt`                     |
+| `Integer`                     | `Int`                          |
+| `Long`                        | `BigInt`                       |
+| `Float`                       | `Float`                        |
+| `Double`                      | `Double`                       |
+| `Decimal`                     | `Decimal`                      |
+| `String`                      | `VarChar(Integer.MAX_VALUE)`   |
+| `VarChar`                     | `VarChar`                      |
+| `FixedChar`                   | `Char`                         |
+| `Date`                        | `Date`                         |
+| `Time`                        | `Time`                         |
+| `TimestampType withZone`      | `LocalZonedTimestamp`          |
+| `TimestampType withoutZone`   | `Timestamp`                    |
+| `Binary`                      | `Binary`                       |
+| `Fixed`                       | `VarBinary`                    |
+
+:::info
+Gravitino doesn't support Paimon `MultisetType` type.
+:::
+
+### Table properties
+
+You can pass [Paimon table 
properties](https://paimon.apache.org/docs/0.8/maintenance/configurations/) to 
Gravitino when creating a Paimon table.
+
+The Gravitino server doesn't allow passing the following reserved fields.
+
+| Configuration item              | Description                                
              |
+|---------------------------------|----------------------------------------------------------|
+| `comment`                       | The table comment.                         
              |
+| `creator`                       | The table creator.                         
              |
+
+### Table operations
+
+Please refer to [Manage Relational Metadata Using 
Gravitino](./manage-relational-metadata-using-gravitino.md#table-operations) 
for more details.
+
+## HDFS configuration
+
+You can place `core-site.xml` and `hdfs-site.xml` in the 
`catalogs/lakehouse-paimon/conf` directory to automatically load as the default 
HDFS configuration.
+
+:::caution
+When reading and writing to HDFS, the Gravitino server can only operate as the 
specified Kerberos user and doesn't support proxying to other Kerberos users 
now.
+:::

Reply via email to