You need to enable JavaScript to run this app.
ByteHouse云数仓版

ByteHouse云数仓版

复制全文
快速入门
快速开始
复制全文
快速开始

ByteHouse 是云原生的数据分析仓库,在数据分析&数据仓库领域提供了一体化解决方案,适用于实时用户行为分析、BI报表制作、日志数据处理等场景。它结合了数据仓库、大数据平台、数据开发/集成/BI 生态、云原生服务的关键特性,提供全面、高性能、安全、弹性的数据解决方案。本文将带您了解 ByteHouse 云数仓版的开通方式和如何快速上手使用 ByteHouse,包括基本的数据分析流程,如数据库/表创建、数据加载及 SQL 查询操作等。

步骤一:注册火山引擎主账号并登录控制台

进入火山引擎官网首页,单击右上角的立即注册,按界面引导完成火山引擎官网账号注册及实名认证,操作详情请参见账号注册流程

步骤二:开通 ByteHouse 云数仓版
  1. 访问 ByteHouse 产品首页,单击购买云数仓版
    Image

  2. 根据界面提示单击立即授权,授权 ByteHouse 云数仓版跨服务访问私有化网络、云监控等产品。授权完成后,即可进入 ByteHouse 云数仓版版控制台。
    Image

  3. 在开通 ByteHouse 服务页面,配置开通 ByteHouse 的地域、计算、存储、网络资源。
    Image

    参数

    说明

    地域

    区域

    火山引擎数据中心的地理位置区域,根据地理位置的不同划分了不同的地域。在实例创建后,实例的地域不可更改。
    如需切换开通 ByteHouse 的地域,可单击页面顶部地域名称,从下拉列表中选择。
    Image

    计算资源

    付费方式

    ByteHouse 云数仓版目前仅支持按量计费和包年包月计费模式。计费详情请参见:结算与续费说明

    计算组

    计算组是 ByteHouse 的计算资源,您可按需创建指定规格的计算组,为各类数据操作提供充足的资源。您可设置多个计算组。ByteHouse 默认将您开通服务时设置的第一个计算组作为全局默认写计算组,为写入数据提供计算资源。如果存在多个计算组,您可在开通服务后,在控制台上切换计算组,详情请参见设置默认写计算组
    计算组相关参数配置说明如下:

    • 规格:计算组规格。不同规格的计算组价格不同,您可按需勾选。您可在界面上查看计算组的规格及定价,也可参考计算资源
    • 名称:计算组名称,支持自定义,名称创建后不可调整。命名规则如下:
      • 以小写字母开头。
      • 由小写字母和数字组成。
      • 使用单个下划线连接名称。
      • 最多支持 31 个字符。
    • 描述:计算组具体描述,您可为计算组添加自定义描述,便于后续区分使用。

    本地盘

    本地盘的用途是承担数据写入时的暂存区和数据读取时的缓存区。
    您可按需启用本地盘功能,100 GB 起订。关于本地盘的规格及定价,详情请参见计算组本地盘

    高级特性

    支持开通全文检索、GIS 时空分析、向量检索等高级特性。

    • 全文检索:允许对文档进行预处理并保存索引以供以后快速搜索。功能详情请参见全文检索
    • GIS时空分析:该功能是指高性能地理空间分析 GIS 能力,为位置洞察、人群圈选等场景提供高性能地理数据分析服务。功能详情请参见GIS 时空分析
    • 向量检索:向量检索提供向量数据的管理与近似度查询功能,同时通过支持多种常见近似向量查询(ANN)算法来提升检索性能,以提供对非结构化数据的处理能力。功能详情请参见开启向量检索

    自动暂停/启动

    • 自动启动:系统默认开启自动启动功能。开启后,用户无需手动开启计算组,可以对计算组发送请求,唤起计算资源并进行查询。当前自动启动开启后,首次查询会耗时较高(10~30 秒),请根据业务需要进行配置。
    • 自动暂停:开启后,如在设置的间隔时间段内未使用,计算组会被自动关闭,从而减少资源成本。

    注意

    如需将某个计算组设置为专属 Server 的默认写计算组,需关闭该计算组的自动启停设置。

    存储资源

    存储空间

    您无需提前购买存储资源,只需支付所使用的存储空间和存储的压缩数据量。

    网络资源

    私有网络(VPC)

    为 ByteHouse 绑定私有网络,用于保障数据传输安全、实现与云上资源私网互通。
    如需创建新的私有网络,可前往控制台创建,操作说明请参见创建私有网络

    子网

    选择 VPC 下对应可选的子网信息。
    如需创建新的子网,可前往控制台创建,操作说明请参见创建子网

    安全组

    选择挂载在 VPC 下的安全组信息。
    如需创建新的安全组,可前往控制台创建,操作说明请参见创建安全组

    购买时长包年包月计费模式需配置

    购买时长

    可选择 1 个月~3 年。

    自动续订

    自动续费默认每个月系统自动付费,无需手动支付,可随时修改续费设置。

  4. 完成配置后,勾选“我已阅读并同意 《ByteHouse 服务专用条款》”,单击开通 ByteHouse,等待约 1 分钟左右即可开通 ByteHouse 云数仓服务。

步骤三:设置默认计算组

在开始使用 ByteHouse 前,您需要先为 ByteHouse 的各类任务设置默认计算组(步骤二中的默认写计算组仅用于写入数据,此步骤设置的默认计算组用于处理查询等其他任务),为处理查询提供默认计算资源。后续执行任务时如果没有单独指定计算组,则将使用您设置的默认计算组资源,此步骤为必需操作
在 ByteHouse 云数仓版控制台上,访问租户管理 > 参数设置 > 用户参数页面,单击编辑按钮,设置默认计算组。
Image

步骤四:创建数据对象

本文以创建数据库 bh_demo 和数据表 employees 为例,介绍如何在 ByteHouse 云数仓版中创建数据对象并通过上传本地文件方式导入数据。

创建数据库

您可以通过可视化建库和使用 SQL 语句建库两种方式创建数据库。

  • 可视化建库
    1. 在 ByteHouse 云数仓版控制台的数据库页签下,单击新建按钮,单击创建库
      Image
    2. 在弹窗中填写数据库名称及描述,本文将使用 bh_demo 数据库为例。
      Image
  • 使用 SQL 语句建库
    单击 ByteHouse 云数仓版控制台的 SQL 工作表页签,在编辑区输入 CREATE DATABASE 命令,并单击运行,创建数据库。SQL 语句示例如下:
    Image
    CREATE DATABASE bh_demo;
    

创建数据表

  1. 单击数据库页签,在列表中单击数据库 bh_demo,在该数据库的详情页中,单击右上角+数据表按钮,单击可视化页面创建
    Image
  2. 在弹出的创建数据表页面中,配置表信息。
    1. 输入表的基础信息,包括表名称、描述。
      Image

    2. 配置列。输入列名,并设置列属性,配置说明详见下文参数说明。

      • 如需添加多列,可单击添加列
      • 如需删除列,可勾选该列前的勾选框,单击删除
        列名可按照准备工作中的样例数据填写,示例如下:
        Image
        参数说明

      参数

      配置说明

      列名

      设置列名称。

      注意

      列名不支持包含斜杠(/)、连字符(-)和空格。

      数据类型

      设置列的数据类型。当前 ByteHouse 支持的数据类型请参见数据类型

      默认值

      设置列的默认值。如果插入数据时未指定该列的值,ByteHouse 将自动填充默认值。

      表达式

      设置默认值是否为表达式,指定该列的默认值是否为动态计算表达式(而非固定值)。

      注释

      填写列的说明信息,用于标注列的业务含义,便于后续维护。

      可为空

      设置该列的值是否可为空。
      如果勾选该选项,则允许该列存储 NULL 值;未勾选则为非空列,插入数据时必须指定该列值。

    3. 配置表属性。ByteHouse 支持为表配置排序键、分区键、表生命周期(TTL)、唯一键等属性。
      Image

      注意

      建表成功后,配置的参数字段大部分无法在创建完成后修改,请在建表前了解键的用途并合理规划。更多建表配置说明可参见 ByteHouse 建表配置最佳实践ByteHouse 唯一键表最佳实践

      参数说明

      参数

      配置说明

      排序键

      必填项。排序键用于确定数据在数据库中的物理存储顺序。一张数据表中最多有 5 个排序键。

      注意

      建表成功后,排序键不支持修改类型/增列/减列。如需修改,需要删除表后重新导入数据。

      分区键

      选填项。分区键用于确定每个数据表行所属的数据分区,以将大型数据表分割为多个较小部分。分区字段不支持 Nullable,最多支持设置 5 个分区字段。

      注意

      建表成功后,分区键字段不支持修改类型/增列/减列。

      过期时间 TTL

      选填项。TTL(Time To Live)是指数据的生命周期,以天为单位,以分区键作为基础进行计算,可用于自动清理过期数据。

      • 通过可视化建表设置该参数前,需要将 Date 或者 Datetime 类型的列设置为分区键,以启用 TTL 功能。
      • 如需将其他类型的列设置为 TTL 依赖的分区键,需使用 SQL 语句建表,可前往 SQL 工作表页面操作。建表语句请参见创建语句 (CREATE)

      注意

      建表成功后,无法通过可视化编辑表调整 TTL,但可通过 SQL 语句调整 TTL,操作详情请参见TTL操作(TTL)

      唯一键

      唯一键可支持 Upsert(Update and Insert)能力,确保数据在分区级别去重,并始终查询对应唯一键的最新值。唯一键最多为 10 个。

      注意

      建表成功后,唯一键字段不支持修改类型/增列/减列。

      分桶键

      对于每一个表或分区,通过指定分桶键(Cluster Key)进一步细分成桶,对列中的数据进行哈希,进行更细粒度的划分,从而提高查询和采样效率。分桶键不能为 Nullable 可空列。
      支持选择是否设置为默认哈希函数。

      注意

      建表成功后,分桶键字段不支持修改类型/增列/减列。

      主键

      主键用于组织数据文件,对数据表中每条记录的唯一标识进行约束。主键必须包含“唯一”值,不能包含“空”值。一个数据表只能有一个主键。
      默认情况不需要显式指定,ByteHouse 将使用排序键作为主键。

      注意

      建表成功后,主键字段不支持修改类型/增列/减列。

      采样键

      采样键用于在抽样查询中使用。这类查询只对特定部分数据(样本)执行查询,适用于牺牲准确性以换取性能,或需求结果本身是近似值的查询。
      采样键必须从排序键和主键中选择,并且其数据类型需要为 UInt,包括 UInt8,UInt16,UInt32,UInt64。

      注意

      建表成功后,采样键字段不支持修改类型/增列/减列。

      配置过程中,您可单击建表页面上的 SQL 页签,可以看到 ByteHouse 输出了创建数据表 employees 对应的 SQL 语句。
      Image

  3. 表配置完成后,单击创建。ByteHouse 将自动创建表,并提示是否创建成功。界面显示创建成功时,您可根据数据库详情页的指引,单击开始导入数据,ByteHouse 将自动跳转至新建数据导入任务页面,您可继续按照下文第五步的操作说明开始导入数据。
    Image

步骤五:导入数据

当前 ByteHouse 云数仓版支持本地小文件导入、离线导入、流式导入、S3/TOS 外表导入,本文以上传 CSV 表格为例,更多导入方式和操作指导可参见数据导入/导出简介

准备工作

  • 下载需导入的样例数据。
    employees.csv
    未知大小
  • 单击前往计算组页面,查看并记录正在运行中的计算组名称。导入任务中需指定计算组,指定计算组前需确保您想要使用的计算组处于运行状态。

操作步骤

  1. 配置导入任务。
    1. 填写导入任务基本信息,自定义任务名称和任务描述。
      Image

    2. 选择数据源类型为文件上传,并上传示例文件用于定义任务和解析 Schema。
      单击点击这里或拖动文件到上传区域,上传文件。上传后,系统将自动读取格式,您可再次确认格式是否正确。
      Image

      说明

      本文以导入 CSV 文件为示例,ByteHouse 也支持 JSON、AVRO、PARQUET 文件类型,其他格式的文件导入操作请参见本地小文件导入

    3. (可选)对于 CSV 格式的文件,您可按需配置对应的格式参数。

      格式

      配置项

      配置说明

      界面示意图

      CSV

      表头

      支持设置为无表头或有表头。

      • 无表头:ByteHouse 将使用 "_c0,_c1" 作为源列名来映射模式与目标表。
      • 有表头:ByteHouse 将分离表头来映射模式到目标表上。

      Image

      CSV 格式

      支持设置分隔符、引用字符、跳过行数、Null Value、编码、转义符、多行支持、忽略空格等。

    4. 选择导入的目标数据库和表。由于您是从创建页面的链接跳转至数据导入页面,ByteHouse 将自动填充目标数据库和表,您可再次确认此处选项已填写为目标数据库 bh_demo 和表 employees
      Image

    5. 定义 Schema 映射。设置数据源和目标表后,系统会自动填充 Schema 映射表,生成数据源与目标表的映射关系。ByteHouse 当前支持以下 Schema 映射配置操作,您可按需调整生成的 Schema 映射。
      Image

      • 调整 Schema 映射逻辑
        如果生成的 Schema 不符合预期或者您需要调整源列与目标列的映射关系,您可单击解析,系统将重新解析。
      • 调整目标表
        您可打开新的浏览器标签页,进入数据库页面并调整目标表,调整后,在数据导入页面中定义 Schema 映射模块单击刷新目标表,系统将自动读取目标表的调整并更新 Schema 映射表。
      • 日期解析格式配置
        ByteHouse 数据导入默认支持自动解析的日期格式为:yyyy-MM-dd'T'HH:mm:ss ( Java 默认的时间格式),注意年月日和时分秒中间用常量 T 隔开。如果您的数据使用其他格式,则需要手动配置,配置操作请参见如何配置日期解析格式?
    6. 配置导入任务的加载类型和计算组,您可按需选择增量写入或全量覆盖写。
      Image

      • 增量写入:在每次执行作业中,数据将被增量写入到目标表,存量数据不会被覆盖。
      • 覆盖写入:用最新的数据替换整个目标表,可以选分区覆盖或者全量覆盖。选择分区覆盖写前,需确认目标表定义了分区键。
      • 计算组:从下拉列表选择导入任务使用的计算组。请确保您拥有该计算组的使用权限且该计算组处于运行状态,否则导入任务可能执行失败。
  2. 单击创建,即可创建导入任务。
  3. 导入任务创建后,系统将跳转至任务详情页面,此时任务将处于暂停状态,您可单击开启,启动任务。
    Image
  4. 在启动文件上传作业弹窗中,选择文件上传路径,单击确定,系统将执行数据加载任务。
    Image
    • 采样文件路径:使用创建导入任务时已上传的文件导入数据。选择此项,可直接使用您在步骤 5.1 中为定义任务而上传的 employees.csv 文件而进行导入。
    • 上传新文件:如果您有新数据需要上传,可选择上传新文件,需确保文件类型和 table schema 与原有任务配置相同。
  5. 当导入任务状态显示为“成功”,说明数据导入成功,您可使用 ByteHouse 管理已导入的数据。
    Image

步骤六:数据查询
  1. 单击 SQL 工作表页签,默认情况下 ByteHouse 会自动产生一张新建工作表,选择查询数据库为 bh_demo
    Image
  2. 在 SQL 编辑区中执行以下 SQL 语句,体验 ByteHouse 查询数据、写入数据的功能。
    • 查询数据条数

      SELECT COUNT(*) 
      FROM employees;
      

      Image

    • 插入更多测试数据

      INSERT INTO employees
      VALUES
          ('Clementine', 'Adamou', 'cadamou@bytedance.com', '10510 Sachs Road', 'Klenak', '2017-9-22'),
          ('Marlowe', 'De Anesy', 'madamouc@bytedance.co.uk', '36768 Northfield Plaza', 'Fangshan', '2017-1-26');
      

      Image

    • 根据电子邮件地址查询数据

      SELECT email
      FROM employees
      WHERE email LIKE '%.uk';
      

      Image

  3. 如果查询执行失败,您可以使用审计日志功能分析查询失败原因。
    1. SQL 工作表查询结果中单击查询 ID。
      Image
    2. ByteHouse 将自动跳转至审计日志,您可单击查询 ID,查看执行详情,也可单击失败后的详情按钮,查看详细报错信息,对该查询进行分析和优化。示例如下:
      Image

进一步使用

以上就是 ByteHouse 云数仓版快速入门指南,更多操作说明和最佳实践说明如下:

最近更新时间:2025.12.11 10:05:53
这个页面对您有帮助吗?
有用
有用
无用
无用