This is an automated email from the ASF dual-hosted git repository.
shaofengshi 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 03279794c [#5560] Add support for extra catalogs in the Gravitino CLI
(#5752)
03279794c is described below
commit 03279794cad378700632c591253e8e6281cb0740
Author: Justin Mclean <[email protected]>
AuthorDate: Wed Dec 4 21:30:03 2024 +1100
[#5560] Add support for extra catalogs in the Gravitino CLI (#5752)
### What changes were proposed in this pull request?
Expand Gravitino CLI support.
### Why are the changes needed?
Add support for all current catalogs.
Fix: #5560
### Does this PR introduce _any_ user-facing change?
No
### How was this patch tested?
Tested locally.
---
.../java/org/apache/gravitino/cli/Providers.java | 20 ++++++++++++++++++
.../org/apache/gravitino/cli/TestProviders.java | 13 ++++++++++++
docs/cli.md | 24 ++++++++++++++++++++++
3 files changed, 57 insertions(+)
diff --git a/clients/cli/src/main/java/org/apache/gravitino/cli/Providers.java
b/clients/cli/src/main/java/org/apache/gravitino/cli/Providers.java
index 78b57ff61..46f875c11 100644
--- a/clients/cli/src/main/java/org/apache/gravitino/cli/Providers.java
+++ b/clients/cli/src/main/java/org/apache/gravitino/cli/Providers.java
@@ -33,6 +33,10 @@ public class Providers {
public static final String MYSQL = "mysql";
public static final String POSTGRES = "postgres";
public static final String KAFKA = "kafka";
+ public static final String DORIS = "doris";
+ public static final String PAIMON = "paimon";
+ public static final String HUDI = "hudi";
+ public static final String OCEANBASE = "oceanbase";
private static final HashSet<String> VALID_PROVIDERS = new HashSet<>();
@@ -43,6 +47,10 @@ public class Providers {
VALID_PROVIDERS.add(MYSQL);
VALID_PROVIDERS.add(POSTGRES);
VALID_PROVIDERS.add(KAFKA);
+ VALID_PROVIDERS.add(DORIS);
+ VALID_PROVIDERS.add(PAIMON);
+ VALID_PROVIDERS.add(HUDI);
+ VALID_PROVIDERS.add(OCEANBASE);
}
/**
@@ -69,6 +77,14 @@ public class Providers {
return "lakehouse-iceberg";
case KAFKA:
return "kafka";
+ case DORIS:
+ return "jdbc-doris";
+ case PAIMON:
+ return "lakehouse-paimon";
+ case HUDI:
+ return "lakehouse-hudi";
+ case OCEANBASE:
+ return "jdbc-oceanbase";
default:
throw new IllegalArgumentException("Unsupported provider: " +
provider);
}
@@ -82,6 +98,10 @@ public class Providers {
case MYSQL:
case POSTGRES:
case ICEBERG:
+ case DORIS:
+ case PAIMON:
+ case HUDI:
+ case OCEANBASE:
return Catalog.Type.RELATIONAL;
case KAFKA:
return Catalog.Type.MESSAGING;
diff --git
a/clients/cli/src/test/java/org/apache/gravitino/cli/TestProviders.java
b/clients/cli/src/test/java/org/apache/gravitino/cli/TestProviders.java
index 403e45883..c7302e288 100644
--- a/clients/cli/src/test/java/org/apache/gravitino/cli/TestProviders.java
+++ b/clients/cli/src/test/java/org/apache/gravitino/cli/TestProviders.java
@@ -36,6 +36,11 @@ public class TestProviders {
assertTrue(Providers.isValidProvider(Providers.MYSQL), "MYSQL should be a
valid entity");
assertTrue(Providers.isValidProvider(Providers.POSTGRES), "POSTGRES should
be a valid entity");
assertTrue(Providers.isValidProvider(Providers.KAFKA), "KAFKA should be a
valid entity");
+ assertTrue(Providers.isValidProvider(Providers.DORIS), "DORIS should be a
valid entity");
+ assertTrue(Providers.isValidProvider(Providers.PAIMON), "PAIMON should be
a valid entity");
+ assertTrue(Providers.isValidProvider(Providers.HUDI), "HUDI should be a
valid entity");
+ assertTrue(
+ Providers.isValidProvider(Providers.OCEANBASE), "OCEANBASE should be a
valid entity");
}
@Test
@@ -70,6 +75,10 @@ public class TestProviders {
assertNotNull(Providers.internal(Providers.MYSQL), "Internal string should
not be null");
assertNotNull(Providers.internal(Providers.POSTGRES), "Internal string
should not be null");
assertNotNull(Providers.internal(Providers.KAFKA), "Internal string should
not be null");
+ assertNotNull(Providers.internal(Providers.DORIS), "Internal string should
not be null");
+ assertNotNull(Providers.internal(Providers.PAIMON), "Internal string
should not be null");
+ assertNotNull(Providers.internal(Providers.HUDI), "Internal string should
not be null");
+ assertNotNull(Providers.internal(Providers.OCEANBASE), "Internal string
should not be null");
}
@Test
@@ -88,6 +97,10 @@ public class TestProviders {
assertNotNull(Providers.catalogType(Providers.MYSQL), "Catalog type should
not be null");
assertNotNull(Providers.catalogType(Providers.POSTGRES), "Catalog type
should not be null");
assertNotNull(Providers.catalogType(Providers.KAFKA), "Catalog type should
not be null");
+ assertNotNull(Providers.catalogType(Providers.DORIS), "Catalog type should
not be null");
+ assertNotNull(Providers.catalogType(Providers.PAIMON), "Catalog type
should not be null");
+ assertNotNull(Providers.catalogType(Providers.HUDI), "Catalog type should
not be null");
+ assertNotNull(Providers.catalogType(Providers.OCEANBASE), "Catalog type
should not be null");
}
@Test
diff --git a/docs/cli.md b/docs/cli.md
index c0e868869..825267b50 100644
--- a/docs/cli.md
+++ b/docs/cli.md
@@ -296,6 +296,30 @@ gcli catalog create -name postgres --provider postgres
--properties jdbc-url=jd
gcli catalog create --name kafka --provider kafka --properties
bootstrap.servers=127.0.0.1:9092,127.0.0.2:9092
```
+##### Create a Doris catalog
+
+```bash
+gcli catalog create --name doris --provider doris --properties
jdbc-url=jdbc:mysql://localhost:9030,jdbc-driver=com.mysql.jdbc.Driver,jdbc-user=admin,jdbc-password=password
+```
+
+##### Create a Paimon catalog
+
+```bash
+gcli catalog create --name paimon --provider paimon --properties
catalog-backend=jdbc,uri=jdbc:mysql://127.0.0.1:3306/metastore_db,authentication.type=simple
+```
+
+#### Create a Hudi catalog
+
+```bash
+gcli catalog create --name hudi --provider hudi --properties
catalog-backend=hms,uri=thrift://127.0.0.1:9083
+```
+
+#### Create an Oceanbase catalog
+
+```bash
+gcli catalog create --name oceanbase --provider oceanbase --properties
jdbc-url=jdbc:mysql://localhost:2881,jdbc-driver=com.mysql.jdbc.Driver,jdbc-user=admin,jdbc-password=password
+```
+
#### Delete a catalog
```bash