jerryshao commented on code in PR #5117:
URL: https://github.com/apache/gravitino/pull/5117#discussion_r1825676264


##########
docs/cli.md:
##########
@@ -8,52 +8,65 @@ last_update:
 license: 'This software is licensed under the Apache License version 2.'
 ---
 
-This document primarily outlines how users can manage metadata within Apache 
Gravitino using the Command Line Interface (CLI). The CLI is accessible via a 
terminal window as an alternative to writing code or using the REST interface.
+This document provides guidance on managing metadata within Apache Gravitino 
using the Command Line Interface (CLI). The CLI offers a terminal based 
alternative to using code or the REST interface for metadata management.
 
-Currently, you can view basic metadata information for metalakes, catalogs, 
schema, and tables. The ability to create, update, and delete metalakes and 
support additional entities in planned in the near future.
+Currently, the CLI allows users to view metadata information for metalakes, 
catalogs, schemas, and tables. Future updates will expand on these capabilities 
to include roles, users, and tags.
 
 ## Running the CLI
 
-You can set up an alias for the command like so:
+You can configure an alias for the CLI for ease of use, with the following 
command:
 
 ```bash
 alias gcli='java -jar 
../../cli/build/libs/gravitino-cli-*-incubating-SNAPSHOT.jar'
 ```
 
-Or use the `gcli.sh` script found in the `clients/cli/bin/` directory to run 
the CLI.
+Or you use the `gcli.sh` script found in the `clients/cli/bin/` directory to 
run the CLI.
 
 ## Usage
 
- To run the Gravitino CLI, use the following command structure:
+The general structure for running commands with the Gravitino CLI is `gcli 
entity command [options]`.
 
  ```bash
- usage: gcli [metalake|catalog|schema|table] 
[list|details|create|delete|update] [options]
+ usage: gcli [metalake|catalog|schema|table|column] 
[list|details|create|delete|update|set|remove|properties] [options]
  Options
- -f,--name <arg>       full entity name (dot separated)
- -h,--help             command help information
- -i,--ignore           Ignore client/sever version check
- -m,--metalake <arg>   Metalake name
- -r,--server           Gravitino server version
- -u,--url <arg>        Gravitino URL (default: http://localhost:8090)
- -v,--version          Gravitino client version
+ -b,--bootstrap <arg>   Kafka bootstrap servers
+ -c,--comment <arg>     entity comment
+ -d,--database <arg>    database name
+ -h,--help              command help information
+ -i,--ignore            Ignore client/sever version check
+ -j,--jdbcurl <arg>     JDBC URL
+ -l,--user <arg>        database username
+ -m,--metastore <arg>   Hive metastore URI
+ -n,--name <arg>        full entity name (dot separated)
+ -p,--provider <arg>    provider one of hadoop, hive, mysql, postgres,
+                        iceberg, kafka
+ -r,--rename <arg>      new entity name
+ -u,--url <arg>         Gravitino URL (default: http://localhost:8090)
+ -v,--value <arg>       property value
+ -w,--warehouse <arg>   warehouse name
+ -z,--password <arg>    database password

Review Comment:
   There are two concerns I can see using per-catalog specific arguments:
   
   1. It needs to define lots of arguments for all the catalogs, as the 
supported catalog number increases, we need to manually add more arguments, 
which increases the maintenance burden. Besides, in your implementation, you 
have one `CreateXXXCatalog` for each catalog, so when we add a new catalog, 
then we also have to update the CLI code, which is not necessary for REST API 
and Java client, and also increase the maintenance overhead.
   2. The specific parameter defined here is also not easy for user to 
understand without checking the docs. For example, like "--password", the user 
doesn't know which catalog should use this parameter, he still needs to check 
the doc, it is because you didn't categorize the parameter for each specific 
catalog, and there're lots of arguments for different catalogs.
   
   So I think it is not necessary to define so many per-catalog arguments, 
WDYT? @shaofengshi 
   
   For the problem you mentioned about the limitation of CLI library, I'm not 
sure if there's different solutions to solve it.



-- 
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]

Reply via email to