DataLeap 项目控制台中,目前数据开发允许下载的查询结果最大记录为 30 万行数据,但在众多业务场景中,通常有超过 30 万行数据需下载至本地进行分析的场景。
本文将为您介绍如何在 DataLeap 数据开发中下载超过 30 万行数据的实操流程。
在临时查询 SQL 界面,将业务方提供的查询 SQL,复制到节点中:
-- 假设存在三个表: -- 表 orders 包含订单信息,有 order_id, customer_id, order_date 等字段 -- 表 customers 包含客户信息,有 customer_id, customer_name, customer_email 等字段 -- 表 order_details 包含订单明细信息,有 order_id, product_id, quantity 等字段 SELECT o.order_id, c.customer_name, c.customer_email, od.product_id, od.quantity FROM orders o JOIN customers c ON o.customer_id = c.customer_id JOIN order_details od ON o.order_id = od.order_id WHERE o.order_date >= '2025-01-01' AND o.order_date <= '2025-03-31' AND c.customer_name LIKE '%John%' ORDER BY o.order_date DESC;
单击界面表管理 > 快速建表按钮,可根据 SQL 内容,跳转到数据地图界面进行目标表创建。
说明
当 SQL 仅包含 Select 语句时,方可借助快速建表功能,直接提取 SQL 中的表字段信息。
新建表界面选择目标 EMR 集群、库表名等信息,并将存储格式选择为 Text 格式,以便于后期通过 TOS 控制台下载数据后,能够更便捷地在本地打开并进行分析。
表信息填写完成后,单击最下方提交按钮,完成表创建。
返回临时查询界面,在 SQL 节点中,编辑数据写入逻辑,示例如下:
SET hive.execution.engine=tez; SET hive.merge.tezfiles=true; SET hive.merge.size.per.task=268435456; -- 256MB SET hive.merge.smallfiles.avgsize=16777216; -- 16MB --插入数据到 hive_on_tos_db.hive_on_tos_table 示例目标表; INSERT INTO hive_on_tos_db.hive_on_tos_table SELECT o.order_id, c.customer_name, c.customer_email, od.product_id, od.quantity FROM orders o JOIN customers c ON o.customer_id = c.customer_id JOIN order_details od ON o.order_id = od.order_id WHERE o.order_date >= '2025-01-01' AND o.order_date <= '2025-03-31' AND c.customer_name LIKE '%John%' ORDER BY o.order_date DESC; --查询 hive_on_tos_db.hive_on_tos_table 表数据量 Select count(*) from hive_on_tos_db.hive_on_tos_table;
SET 参数说明如下:
参数名称 | 说明 |
---|---|
hive.execution.engine | 指定 Hive 的执行引擎,tez 表示使用 Apache Tez 作为 Hive 的执行引擎。 |
hive.merge.tezfiles | 是否合并任务执行后所产生的结果文件:
|
hive.merge.size.per.task | 任务在合并数据结果文件时的期望文件大小,单位为 字节,如 |
hive.merge.smallfiles.avgsize | 指定需要被合并的平均文件大小的阈值,单位为 字节,如 |
SQL 编辑完成后,单击编辑栏上方的调试按钮,等待调试执行完成,在下方调试记录中查看 Hive 表中的数据量是否符合预期。
参考1 新建临时查询节点步骤,新建查询节点,并在 SQL 界面中编辑并执行以下语句:
show create table hive_on_tos_db.hive_on_tos_table;
调试运行后,您便可在调试结果页中,查看 Hive 表存储的路径信息:
临时查询调试执行成功后,您便可前往 TOS 控制台,在对应 Bucket 路径下,下载 Hive 表全量数据。
说明
由于在执行 EMR Hive SQL 任务的数据写入操作时,该任务会被解析为一系列的 MapReduce 任务。基于 Reduce 规则,不同的数据量执行后会生成多个数据结果文件,您可根据实际场景,通过上述 SET 参数进行文件合并;您也可以将这些多个文件全部下载至本地,然后再进行相关操作。