跳转到主要内容

使用原生批量摄取加载数据

本主题将介绍如何使用 Apache Druid 的原生批量摄取功能加载和查询数据文件。

先决条件

请按照 Druid 快速入门 中的说明安装 Druid,启动 Druid 服务,并打开 Web 控制台。

加载数据

摄取规范(Ingestion specs)定义了 Druid 读取和存储数据的模式。你可以手动编写摄取规范,也可以使用“数据加载器”(data loader)。此处我们将使用数据加载器,通过 Druid 的原生批量摄取功能来执行批量文件加载。

Druid 发行版中附带了我们可以使用的示例数据。位于 Druid 根目录 quickstart/tutorial/wikiticker-2015-09-12-sampled.json.gz 中的示例数据代表了某一天维基百科的页面编辑记录。

  1. 点击 Web 控制台标题栏中的 Load dataLoad data)。

  2. 选择 Local disk(本地磁盘)图块,然后点击 Connect data(连接数据)。

    Data loader init

  3. 输入以下值:

    • Base directory(基目录):quickstart/tutorial/

    • File filter(文件过滤器):wikiticker-2015-09-12-sampled.json.gz

    Data location

    正如 UI 所提供的,分别输入基目录和通配符文件过滤器,可以让你一次指定多个文件进行摄取。

  4. 点击 Apply(应用)。

    数据加载器会显示原始数据,让你有机会验证数据是否符合预期。

    Data loader sample

    请注意,你在数据加载步骤序列中的位置(在本例中为 Connect)会显示在控制台顶部,如下图所示。你可以随时点击其他步骤,在序列中向前或向后移动。

    Load data

  5. 点击 Next: Parse data(下一步:解析数据)。

    数据加载器会自动尝试确定适合该数据格式的解析器。在本例中,它将数据格式识别为 json,如右下角的 Input format(输入格式)字段所示。

    Data loader parse data

    你可以随意选择其他 Input format 选项,以了解它们的配置设置以及 Druid 如何解析其他类型的数据。

  6. 选择 JSON 输入格式后,点击 Next: Parse time(下一步:解析时间)。在 Parse time 设置中,你可以查看并调整数据的主时间戳列。

    Data loader parse time

    Druid 要求数据具有一个主时间戳列(内部存储在名为 __time 的列中)。如果数据中没有时间戳,请选择 Constant value(常量值)。在我们的示例中,数据加载器确定 time 列是唯一可以用作主时间列的候选列。

  7. 点击 Next: Transform(下一步:转换)、Next: Filter(下一步:过滤),然后点击 Next: Configure schema(下一步:配置模式),跳过几个步骤。

    你无需调整转换或过滤设置,因为应用摄取时间转换和过滤器超出了本教程的范围。

  8. Configure schema(配置模式)设置是你配置摄取哪些维度指标的地方。此配置的结果准确代表了数据在摄取后在 Druid 中的显示方式。

    由于我们的数据集非常小,你可以通过取消勾选 Rollup 开关并在提示时确认更改,来关闭汇总 (rollup) 功能。

    Data loader schema

  9. 点击 Next: Partition(下一步:分区)以配置数据如何拆分为段 (segments)。在本例中,选择 DAY 作为 Segment granularity(段粒度)。

    Data loader partition

    由于这是一个小数据集,我们可以只有一个段,这就是选择 DAY 作为段粒度的效果。

  10. 点击 Next: Tune(下一步:调优)和 Next: Publish(下一步:发布)。

  11. Publish 设置是你指定 Druid 中数据源名称的地方。让我们将默认名称从 wikiticker-2015-09-12-sampled 更改为 wikipedia

    Data loader publish

  12. 点击 Next: Edit spec(下一步:编辑规范)以查看我们使用数据加载器构建的摄取规范。

    Data loader spec

    你可以随时返回并更改先前步骤中的设置,查看这如何更新规范。同样,你可以直接编辑规范,并在之前的步骤中看到相应的更改。

    有关在 Druid 中加载摄取规范的其他方法,请参阅教程:加载文件

  13. 对规范满意后,点击 Submit(提交)。

    我们 wikipedia 数据源的新任务现在出现在 Ingestion(摄取)视图中。

    Tasks view

    任务可能需要一两分钟才能完成。完成后,任务状态应为 "SUCCESS",并显示任务的持续时间。请注意,该视图设置为自动刷新,因此无需刷新浏览器即可查看状态更改。

    任务成功意味着已构建了一个或多个段,并且现在已被我们的数据服务器提取。

查询数据

你现在可以在控制台中以数据源的形式查看数据并尝试运行查询,如下所示:

  1. 从控制台标题栏点击 Datasources(数据源)。

    如果 wikipedia 数据源没有出现,请稍等片刻,等待段加载完成。当数据源在 Availability(可用性)列中显示为 "Fully available"(完全可用)时,即表示可以进行查询。

  2. 当数据源可用时,打开该数据源的 Actions(操作)菜单(Actions),然后选择 Query with SQL(使用 SQL 查询)。

    Datasource view

信息

请注意你可以对数据源执行的其他操作,包括配置保留规则、压缩等。

  1. 运行预填充的查询 SELECT * FROM "wikipedia" 以查看结果。

    Query view