云服务器内容精选

  • 规则 有数据持续写入的表,24小时内至少执行一次compaction。 对于MOR表,不管是流式写入还是批量写入,需要保证每天至少完成1次Compaction操作。如果长时间不做compaction,Hudi表的log将会越来越大,这必将会出现以下问题: Hudi表读取很慢,且需要很大的资源。 这是由于读MOR表涉及到log合并,大log合并需要消耗大量的资源并且速度很慢。 长时间进行一次Compaction需要耗费很多资源才能完成,且容易出现OOM。 阻塞Clean,如果没有Compaction操作来产生新版本的Parquet文件,那旧版本的文件就不能被Clean清理,增加存储压力。 CPU与内存比例为1:4~1:8。 Compaction作业是将存量的parquet文件内的数据与新增的log中的数据进行合并,需要消耗较高的内存资源,按照之前的表设计规范以及实际流量的波动结合考虑,建议Compaction作业CPU与内存的比例按照1:4~1:8配置,保证Compaction作业稳定运行。当Compaction出现OOM问题,可以通过调大内存占比解决。
  • 规则 Hudi表必须执行Archive。 对于Hudi的MOR类型和COW类型的表,都需要开启Archive。 Hudi表在写入数据时会自动判断是否需要执行Archive,因为Archive的开关默认打开(hoodie.archive.automatic默认为true)。 Archive操作并不是每次写数据时都会触发,至少需要满足以下两个条件: Hudi表满足hoodie.keep.max.commits设置的阈值。如果是Flink写hudi至少提交的checkpoint要超过这个阈值;如果是Spark写hudi,写Hudi的次数要超过这个阈值。 Hudi表做过Clean,如果没有做过Clean就不会执行Archive。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 table_metas Array of TableMeta objects 表元数据列表。 page_info PagedInfo object 分页返回信息。 表5 TableMeta 参数 参数类型 描述 catalog_name String catalog名称。 database_name String 数据库名称。 table_name String 表名称。 external_table_id String 用户端表id,创建时指定,不可修改。 table_type String 表类型:MANAGED_TABLE-内表、EXTERNAL_TABLE-外表、VIRTUAL_VIEW-视图、MATERIALIZED_VIEW-物化视图、DICTIONARY_TABLE字典表。 枚举值: MANAGED_TABLE EXTERNAL_TABLE VIRTUAL_VIEW MATERIALIZED_VIEW DICTIONARY_TABLE comments String 表描述信息。 columns Array of Column objects 分区列以外的所有字段。 partition_keys Array of Column objects 分区列的信息。 表6 Column 参数 参数类型 描述 column_type String 列类型,包括array bigint binary boolean char date decimal double float int interval map set smallint string struct timestamp tinyint union varchar column_name String 列名称。只能包含中文、字母、数字和_-+*(), 特殊字符,且长度为1~767个字符。 comment String 列描述信息。最大长度为4000个字符。 表7 PagedInfo 参数 参数类型 描述 current_count Integer 本次返回的对象个数。最小值为0,最大值为2000。 next_marker String 下一页查询地址。当不存在下一页,则值为null,当值为null时,响应Body无该参数。 previous_marker String 上一页查询地址。当不存在上一页,则值为null,当值为null时,响应Body无该参数。 状态码: 400 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误描述。 solution_msg String 解决方案描述。 状态码: 404 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误描述。 solution_msg String 解决方案描述。 状态码: 500 表10 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误描述。 solution_msg String 解决方案描述。
  • URI GET /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/tables 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目编号。获取方法,请参见获取项目ID。 instance_id 是 String LakeFormation实例ID。创建实例时自动生成。例如:2180518f-42b8-4947-b20b-adfc53981a25。 catalog_name 是 String catalog名称。只能包含字母、数字和下划线,且长度为1~256个字符。 表2 Query参数 参数 是否必选 参数类型 描述 database_name_pattern 否 String 数据库名称通配符。只能包含中文、字母、数字和_|*.-特殊字符,且长度为1~128个字符。 table_name_pattern 否 String 表名称通配符。只能包含中文、字母、数字和_|*.-特殊字符,且最大长度为1~256个字符。 table_types 否 Array 查询的表类型:MANAGED_TABLE-内表、EXTERNAL_TABLE-外表、VIRTUAL_VIEW-视图、MATERIALIZED_VIEW-物化视图、DICTIONARY_TABLE字典表。 枚举值: MANAGED_TABLE EXTERNAL_TABLE VIRTUAL_VIEW MATERIALIZED_VIEW DICTIONARY_TABLE limit 否 Integer 查询返回条数。默认值为1000。最小值为1,最大值为2000。 marker 否 String 查询的起始记录ID。最小长度为0,最大长度为256。 reverse_page 否 Boolean 是否倒序查询。 external_table_id 否 String 用户端表id,创建时指定,不可修改。
  • 响应示例 状态码: 200 OK { "table_metas" : [ { "catalog_name" : "hive", "database_name" : "default", "table_name" : "tbla", "table_type" : "MANAGED_TABLE", "comments" : "" }, { "catalog_name" : "hive", "database_name" : "default", "table_name" : "tblb", "table_type" : "MANAGED_TABLE", "comments" : "" } ], "page_info" : { "current_count" : 2, "next_marker" : null, "previous_marker" : null }} 状态码: 400 Bad Request { "error_code" : "common.01000001", "error_msg" : "failed to read http request, please check your input, code: 400, reason: Type mismatch., cause: TypeMismatchException"} 状态码: 401 Unauthorized { "error_code": 'APIG.1002', "error_msg": 'Incorrect token or token resolution failed'} 状态码: 403 Forbidden { "error" : { "code" : "403", "message" : "X-Auth-Token is invalid in the request", "error_code" : null, "error_msg" : null, "title" : "Forbidden" }, "error_code" : "403", "error_msg" : "X-Auth-Token is invalid in the request", "title" : "Forbidden"} 状态码: 404 Not Found { "error_code" : "common.01000001", "error_msg" : "response status exception, code: 404"} 状态码: 408 Request Timeout { "error_code" : "common.00000408", "error_msg" : "timeout exception occurred"} 状态码: 500 Internal Server Error { "error_code" : "common.00000500", "error_msg" : "internal error"}