private static AmsThriftUrl parserThriftUrl(String url) {
    int socketTimeout = DEFAULT_SOCKET_TIMEOUT;
    try {
      URI uri = new URI(url.toLowerCase(Locale.ROOT));
      String schema = uri.getScheme();
      String host = uri.getHost();
      int port = uri.getPort();
      String path = uri.getPath();
      if (path != null && path.startsWith("/")) {
        path = path.substring(1);
      }
      if (uri.getQuery() != null) {
        for (String paramExpression : uri.getQuery().split("&")) {
          String[] paramSplit = paramExpression.split("=");
          if (paramSplit.length == 2) {
            if (paramSplit[0].equalsIgnoreCase(PARAM_SOCKET_TIMEOUT)) {
              socketTimeout = Integer.parseInt(paramSplit[1]);
            }
          }
        }
      }
      String catalogName = path;
      return new AmsThriftUrl(schema, host, port, catalogName, socketTimeout, url);
    } catch (URISyntaxException e) {
      throw new IllegalArgumentException("parse metastore url failed", e);
    }
  }
parse thrift url, now support thrift://host:port/{catalogName} and
zookeeper://host:port/{cluster}/{catalogName} . parse to AmsThriftUrl that contains properties
schema, host, port, catalogName, socketTimeout, url.

@param url - thrift url
@return -
amoro-common/src/main/java/org/apache/amoro/client/AmsThriftUrl.java