CLI使用案例2:轻松大并发地拉取大数据到本地

本文涉及的产品
对象存储 OSS,OSS 加速器 50 GB 1个月
简介: 当你需要把特定数据下载到本地时, 是否遇到一些困难: 1. 现在的Web控制台只能一页一页的下载? 2. SDK提供的接口需要用起来有些复杂, 例如游标怎么获取, 分区如何传入, 拉去数据后需要输出格式化? 如果是的, 你可能需要使用日志服务的CLI来轻松拉取大量数据到本地.

当你需要把特定数据下载到本地时, 是否遇到一些困难:

  1. 现在的Web控制台只能一页一页的下载?
  2. SDK提供的接口需要用起来有些复杂, 例如游标怎么获取, 分区如何传入, 拉去数据后需要输出格式化?

如果是的, 你可能需要使用日志服务的CLI来轻松拉取数据到本地.

大并发拉取日志

介绍

拉取数据(PullLog)指的是针对特定分区, 按照游标来消费日志, 游标指的是服务器接收到日志的时间.
拉取数据的特点是:

  1. 没有索引的数据也可以拉取.
  2. 按照分区粒度拉取, 每个分区游标互相无关.
  3. 速度快, 易并发, 且支持传输压缩.
  4. 拉取的数据按照服务器接受的时间排序.

并发下载

命令pull_log_dump针对下载做了优化,直接指定文件路径,即可将日志下载在本地。

aliyunlog log pull_log_dump --project_name="p1" --logstore_name="l1" --from_time="2018-01-24 16:00:00+8:00" --to_time="2018-01-24 17:00:00 +8:00" --file_path="/data/dump_{}.data"

这里拉取从时间2018-01-24 16:00:00+8:002018-01-24 17:00:00+8:00并把数据下载本地,因为是并发,所以会存储在多个文件中,文件名根据/data/dump_{}.data中的{}替换成多个并发的数字(一般是分区号)。文件的内容格式为一行一个日志,例如:

{"k1":"a1", "k2":"a2"}
{"k1":"b1", "k2":"b2"}
...

下载完后会显示下载的文件列表以及日志数,例如:

{"files": {"/data/dump_1.data": 75, "/data/dump_2.data": 14}, "total_count": 89}

时间格式

时间格式推荐是%Y-%m-%d %H:%M:%S %Z, 如2018-01-24 17:00:00+8:00, 但也支持其他合法的时间格式, 例如:Jan 01 2018 10:10:10+8:00

时间范围

命令pull_log_dump传入的时间范围, 需要注意几点:

  1. 这里的时间指的是服务器接受日志的时间
  2. 时间的范围是左闭右开[), 上面例子中16:00:00服务器接受到的日志会被拉取到, 但是17:00:00服务器所接受到的日志不会.

特殊的时间范围

有时我们不关心数据的某一边界, 例如期望获得所有存储的数据到某一天日期位置. 或者获取从某一天开始到目前存储的数据为止的话, 就可以使用特殊游标.

特殊游标包括beginend. 例如:

aliyunlog log pull_log_dump --project_name="p1" --logstore_name="l1" --shard_id=3 --from_time="begin" --to_time="2018-01-24 17:00:00+8:00"

这里拉取所有2018-01-24 17:00:00+8:00之前服务器接收到的日志.

又例如:

aliyunlog log pull_log_dump --project_name="p1" --logstore_name="l1" --shard_id=3 --from_time="2018-01-24 17:00:00+8:00" --to_time="end"

这里拉取所有2018-01-24 17:00:00+8:00开始及之后服务器接收到的日志.

进一步参考

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
10月前
|
关系型数据库 MySQL 大数据
大数据新视界--大数据大厂之MySQL 数据库课程设计:MySQL 数据库 SQL 语句调优的进阶策略与实际案例(2-2)
本文延续前篇,深入探讨 MySQL 数据库 SQL 语句调优进阶策略。包括优化索引使用,介绍多种索引类型及避免索引失效等;调整数据库参数,如缓冲池、连接数和日志参数;还有分区表、垂直拆分等其他优化方法。通过实际案例分析展示调优效果。回顾与数据库课程设计相关文章,强调全面认识 MySQL 数据库重要性。为读者提供综合调优指导,确保数据库高效运行。
|
SQL 分布式计算 NoSQL
大数据-164 Apache Kylin Cube优化 案例1 定义衍生维度与对比 超详细
大数据-164 Apache Kylin Cube优化 案例1 定义衍生维度与对比 超详细
222 1
大数据-164 Apache Kylin Cube优化 案例1 定义衍生维度与对比 超详细
|
消息中间件 存储 druid
大数据-156 Apache Druid 案例实战 Scala Kafka 订单统计
大数据-156 Apache Druid 案例实战 Scala Kafka 订单统计
248 3
|
分布式计算 大数据 Linux
大数据体系知识学习(二):WordCount案例实现及错误总结
这篇文章介绍了如何使用PySpark进行WordCount操作,包括环境配置、代码实现、运行结果和遇到的错误。作者在运行过程中遇到了Py4JJavaError和JAVA_HOME未设置的问题,并通过导入findspark初始化和设置环境变量解决了这些问题。文章还讨论了groupByKey和reduceByKey的区别。
265 1
|
消息中间件 druid 大数据
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(二)
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(二)
213 2
|
存储 大数据 分布式数据库
大数据-165 Apache Kylin Cube优化 案例 2 定义衍生维度及对比 & 聚合组 & RowKeys
大数据-165 Apache Kylin Cube优化 案例 2 定义衍生维度及对比 & 聚合组 & RowKeys
249 1
|
消息中间件 分布式计算 druid
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(一)
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(一)
250 1
|
存储 SQL 分布式计算
大数据-142 - ClickHouse 集群 副本和分片 Distributed 附带案例演示
大数据-142 - ClickHouse 集群 副本和分片 Distributed 附带案例演示
1351 0
|
存储 SQL 分布式计算
大数据-139 - ClickHouse 集群 表引擎详解4 - MergeTree 实测案例 ReplacingMergeTree SummingMergeTree
大数据-139 - ClickHouse 集群 表引擎详解4 - MergeTree 实测案例 ReplacingMergeTree SummingMergeTree
312 0
|
SQL 大数据 API
大数据-132 - Flink SQL 基本介绍 与 HelloWorld案例
大数据-132 - Flink SQL 基本介绍 与 HelloWorld案例
316 0