You need to enable JavaScript to run this app.
ByteHouse 企业版

ByteHouse 企业版

复制全文
常见问题
SQL FAQ
复制全文
SQL FAQ

Q1:ByteHouse 企业版是否兼容 ClickHouse 社区版?

ByteHouse 企业版完全兼容 ClickHouse 23.3,22.3,21.8 版本,部分兼容了其他版本。
对于高于 ClickHouse 23.3 的版本,ByteHouse 不保证兼容性,主要风险为 ClickHouse 社区版在版本演进中,对配置参数、函数等的默认行为变更。

Q2:ByteHouse 企业版的表引擎和社区是否有差异?

ByteHouse 支持的引擎可参考官网文档。同时 ByteHouse 也支持所有社区的引擎,可参考社区文档
此外,ByteHouse 还基于实际场景诉求自研了三个引擎,详情可参考:HaMergeTreeHaUniqueMergeTreeHaKafka

Q3:ByteHouse 企业版支持哪些数据类型?

ByteHouse 支持所有社区的数据类型,可参考常用数据类型
此外,ByteHouse 还基于实际场景诉求自研了 ByteMapBitEngine 类型。

Q4:建表时 JSON 列报错该怎么处理?

  • 常见报错信息如下

    Event Revoke Error (Event Dump All Failed Error (failed to exec sql in clickhouse (code: 44, message: Cannot create table with column 'li' which type is 'Object('json')' because experimental Object type is not allowed. Set setting allow_experimental_object_type = 1 in order to allow it SQLSTATE: 42P10)):895673)
    

    或者:

    Code: 44, e.displayText() = DB::Exception: Cannot create table with column 'simple_data_json' which type is 'Object('json')' because experimental Object type is not allowed. Set setting allow_experimental_object_type = 1 in order to allow it SQLSTATE: 42P10 (version 21.9.1) 
    

    或者:

    Cannot create table with column 'xx' which type is 'Object('json')' because experimental Object type is not allowed. Set setting allow_experimental_object_type = 1 in order to allow it 
    
  • 原因
    JSON 列类型当前为实验功能(experimental feature),出现该报错是因为 ByteHouse 默认不允许使用实验性 Object 类型。使用前,需要在用户参数中开启相关参数设置。

  • 解决方法

    1. 登录 ByteHouse 企业版管理控制台,在页面左上角选择目标集群所在的地域,单击集群管理页签,进入集群列表页面。单击目标集群所在行操作列的集群参数,单击查看用户参数
      Image

    2. 单击 Default Profile,进入详情页面。
      Image

    3. 单击修改配置,通过 XML 设置修改参数值。
      Image

    4. 新增 allow_experimental_object_type = 1,参数示例如下:

      <allow_experimental_object_type>1</allow_experimental_object_type>
      

      Image

    5. 修改完成后单击保存并下发,系统将对应修改集群参数。用户参数无需重启集群,修改完成后秒级即可生效。

Q5:怎样在 ByteHouse 中展示 JSON 数据和使用 JSON 函数?

您可通过以下两种方式在 ByteHouse 中展示 JSON 数据和使用 JSON 函数:

  • 方法一
    使用时请将以下命令中的数据库名、表名、列名替换为您实际的数据信息。

    SELECT test_json FROM default.test_user FORMAT JSONEachRow SETTINGS output_format_json_named_tuples_as_objects = 1;
    
  • 方法二

    SELECT toObjectString(test_json) FROM default.test_user;
    
最近更新时间:2026.01.04 12:04:18
这个页面对您有帮助吗?
有用
有用
无用
无用