yuqi1129 commented on code in PR #10070: URL: https://github.com/apache/gravitino/pull/10070#discussion_r2903617251
########## docs/jdbc-hologres-catalog.md: ########## @@ -0,0 +1,274 @@ +--- +title: "Hologres catalog" +slug: /jdbc-hologres-catalog +keywords: +- jdbc +- Hologres +- metadata +license: "This software is licensed under the Apache License version 2." +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +## Introduction + +Apache Gravitino provides the ability to manage [Hologres](https://help.aliyun.com/zh/hologres) metadata. + +Hologres is a real-time data warehouse service provided by Alibaba Cloud, designed for high-concurrency and low-latency online analytical processing (OLAP). Hologres is fully compatible with the PostgreSQL protocol and uses the PostgreSQL JDBC Driver for connections. + +:::caution +Gravitino saves some system information in schema and table comment, like `(From Gravitino, DO NOT EDIT: gravitino.v1.uid1078334182909406185)`, please don't change or remove this message. +::: + +## Catalog + +### Catalog capabilities + +- Gravitino catalog corresponds to a Hologres database instance. +- Supports metadata management of Hologres. +- Supports DDL operation for Hologres schemas and tables. +- Supports table index (PRIMARY KEY in CREATE TABLE). +- Supports [column default value](./manage-relational-metadata-using-gravitino.md#table-column-default-value). +- Supports LIST partitioning (physical and logical partition tables). +- Supports Hologres-specific table properties via `WITH` clause (orientation, clustering_key, distribution_key, etc.). +- Does not support [auto-increment](./manage-relational-metadata-using-gravitino.md#table-column-auto-increment). + +### Catalog properties + +You can pass to a Hologres data source any property that isn't defined by Gravitino by adding `gravitino.bypass.` prefix as a catalog property. For example, catalog property `gravitino.bypass.maxWaitMillis` will pass `maxWaitMillis` to the data source property. + +Check the relevant data source configuration in [data source properties](https://commons.apache.org/proper/commons-dbcp/configuration.html) + +If you use a JDBC catalog, you must provide `jdbc-url`, `jdbc-driver`, `jdbc-database`, `jdbc-user` and `jdbc-password` to catalog properties. +Besides the [common catalog properties](./gravitino-server-config.md#apache-gravitino-catalog-properties-configuration), the Hologres catalog has the following properties: + +| Configuration item | Description | Default value | Required | Since Version | +|-------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|----------|------------------| +| `jdbc-url` | JDBC URL for connecting to the database. For example, `jdbc:postgresql://hgprecn-cn-xxx.hologres.aliyuncs.com:80/my_database` | (none) | Yes | 0.9.0-incubating | +| `jdbc-driver` | The driver of the JDBC connection. Must be `org.postgresql.Driver`. | (none) | Yes | 0.9.0-incubating | +| `jdbc-database` | The database name. This is mandatory for Hologres. | (none) | Yes | 0.9.0-incubating | +| `jdbc-user` | The JDBC user name (AccessKey ID or database username). | (none) | Yes | 0.9.0-incubating | +| `jdbc-password` | The JDBC password (AccessKey Secret or database password). | (none) | Yes | 0.9.0-incubating | +| `jdbc.pool.min-size` | The minimum number of connections in the pool. `2` by default. | `2` | No | 0.9.0-incubating | +| `jdbc.pool.max-size` | The maximum number of connections in the pool. `10` by default. | `10` | No | 0.9.0-incubating | + +:::caution +Hologres uses the PostgreSQL JDBC Driver (version 42.3.2 or later recommended). Since the PostgreSQL JDBC Driver is already bundled with the Hologres catalog, you don't need to download it separately. +::: + +### Catalog operations + +Refer to [Manage Relational Metadata Using Gravitino](./manage-relational-metadata-using-gravitino.md#catalog-operations) for more details. + +## Schema + +### Schema capabilities + +- Gravitino's schema concept corresponds to the Hologres (PostgreSQL) schema. +- Supports creating schema with comment. +- Supports dropping schema. +- System schemas are automatically filtered: `pg_toast`, `pg_catalog`, `information_schema`, `hologres`, `hg_internal`, `hg_recyclebin`, `hologres_object_table`, `hologres_sample`, `hologres_streaming_mv`, `hologres_statistic`. + +### Schema properties + +- Doesn't support any schema property settings. + +### Schema operations + +Refer to [Manage Relational Metadata Using Gravitino](./manage-relational-metadata-using-gravitino.md#schema-operations) for more details. + +## Table + +### Table capabilities + +- Gravitino's table concept corresponds to the Hologres table. +- Supports DDL operation for Hologres tables. +- Supports PRIMARY KEY index in CREATE TABLE. +- Supports [column default value](./manage-relational-metadata-using-gravitino.md#table-column-default-value). +- Supports generated (stored computed) columns. Review Comment: This line says generated (stored computed) columns are supported, but Hologres integration behavior in Gravitino appears to treat expression columns as DEFAULT expressions (not generated/computed columns). Could you please clarify or update this bullet to avoid over-promising capabilities? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
