- 博客(127)
- 资源 (1)
- 收藏
- 关注
原创 Python时间处理利器:Pendulum库详解
Pendulum库通过提供直观的API、强大的时区支持和丰富的扩展功能,显著提升了Python时间处理的开发效率。无论是简单的日期操作还是复杂的时区处理,Pendulum都能提供简洁优雅的解决方案。对于那些需要频繁处理国际化时间、复杂时间计算或者希望提高时间操作代码可读性的项目,Pendulum无疑是一个极佳的选择。模块的完美补充,它在保证向后兼容的同时,为开发者带来了更现代、更易用的时间处理体验。模块,但通过更人性化的API设计和丰富的功能,极大地简化了时间相关的操作。Pendulum核心特性。
2026-07-04 20:35:01
224
原创 Hive子查询中的ORDER BY陷阱:为什么排序“消失”了?
今日和同事争论了片刻,背景是这样的, 有个客户写了一个SQL, 然后其中需要进行排序, 但是写了Order by, 但是排序没有生效. 然后我就尝试了下, 果然,在大数据平台里执行,是报错的. 但是在beeline执行, 查询结果是正常的, 所以就怀疑研发写了一个BUG, 于是就开始争论.SQL很简单,简写为SELECT *FROM dual。
2026-06-10 20:01:30
467
原创 数据脱敏简介
数据脱敏(Data Masking)本质上是在与之间寻找平衡。针对不同的应用场景(开发测试、数据分析、生产环境),选型逻辑截然不同。
2026-05-17 22:58:56
517
原创 Hive分桶机制应用
Hive分桶机制应用摘要:本文介绍了Hive分桶机制在数据分布不均匀场景下的应用。针对业务数据频率不固定、查询时间范围不固定等问题,提出了使用动态分区和分桶策略的解决方案。重点阐述了分桶设计的5步流程:确定分桶键、判断需求、计算bucket数、表结构设计和写入优化,并提供了验证方法。分桶机制能有效提升JOIN、去重和抽样操作的性能,特别适用于大规模数据场景。文章还给出了实际SQL示例和参数配置建议,帮助实现高效的数据处理。
2026-05-12 23:03:45
382
原创 问题分析模型
本文系统介绍了四大类问题分析模型:1)寻找根因类(5 Whys、鱼骨图、故障树分析),用于深挖问题本质;2)拆解问题类(MECE原则、逻辑树、SCQA模型),帮助结构化分解复杂问题;3)制定决策类(矩阵分析、SWOT、决策评估矩阵),提供科学决策工具;4)系统思维类(冰山模型、PDCA循环),从全局视角预防问题。文章强调模型组合使用的实战价值,建议从5 Whys、逻辑树和SCQA三个基础模型入手,逐步掌握各类工具的应用场景和优劣势,提升结构化思考能力。
2026-04-29 22:10:48
1011
原创 Pandas 读取文本数据 (Text I/O) 速查表
本文介绍了Pandas中读取各类文本文件的核心函数与方法,包括pd.read_csv()、pd.read_table()和pd.read_fwf()等。主要内容涵盖:不同分隔符文件(CSV/TSV/自定义)的处理技巧、特殊格式(无表头/多级表头/固定宽度)的读取方法、大文件的内存优化策略(列筛选/类型指定/分块读取)、编码问题的解决方案,以及常见错误的排查指南。通过参数模板和代码示例,帮助用户高效解决数据读取中的各类问题,提升数据处理效率。
2026-03-25 11:47:52
358
原创 Pandas 数据选择与定位 (Selection & Indexing) 速查表
本文提供了Pandas数据选择与定位的速查指南,涵盖1.x/2.x版本核心操作。主要内容包括:基础数据查看方法、列选择技巧、基于标签(.loc)和位置(.iloc)的选择方式对比、条件筛选与布尔索引、安全赋值方法,以及高级选择技巧如query()和where()。重点强调最佳实践:优先使用.loc避免歧义,警惕链式赋值警告,明确区分视图与副本。同时提供了常见错误解决方案,帮助用户高效准确地操作DataFrame数据。
2026-03-25 11:42:52
212
原创 Hive中的大批量关键词匹配场景优化
面对海量关键词匹配,我绝不会用LIKE拼接或 UDF 硬查,而是通过“预构建关键词维表 + MapJoin + 分词/正则优化”三位一体策略,实现高效、可扩展的匹配。在 Hive 3 + Tez 架构下,我通过“小表物理裁剪 + CBO 驱动自动广播 + 执行计划验证”三位一体,实现千万级关键词对百亿文本的高效匹配,全程无需手动 hint,且具备自适应能力。
2026-01-24 12:30:08
818
原创 Hive 大表 Join 优化:从策略选择到倾斜处理
执行计划是金科玉律:永远不要假设 Hive 选对了策略。使用EXPLAIN查看执行计划,确认是否触发了 SMB Join,或者是否产生了不必要的 Reduce 阶段。谓词下推:确保过滤条件(Where)尽可能写在子查询内部,减少参与 Join 的数据基数。资源调优:对于大表 Join,适当增加 Mapper 的内存(避免读取 ORC 文件时 OOM)和调整 Reducer 的数量()也是必要的辅助手段。优化大表 Join,本质上是在用存储的复杂性换取查询的高性能(如分桶排序)。
2026-01-24 12:06:21
924
原创 Hive 中 UNION 与 UNION ALL
作为有经验的开发者,我的默认选择是性能优先(UNION ALL),仅在业务强需求时才牺牲性能换取语义正确性(UNION)。在 Hive 的日常开发与面试中,UNION 和 UNION ALL 的区别是一个高频考点。对于有经验的开发者来说,回答这个问题不能仅仅停留在“一个去重,一个不去重”的表面,我们需要深入到执行计划、底层原理以及数据库设计哲学的层面。如果数据库只提供 UNION(默认去重),那么每次合并数据时,我们都不得不承受去重带来的性能惩罚,即使我们的业务逻辑明确知道数据不会有重复。
2026-01-24 11:59:51
745
原创 面试备考-Hive窗口函数
原则:如果多个函数的逻辑允许,强制它们共用同一个OVER子句。场景:计算每个部门的累计销售额,同时计算每个部门的总销售额。错误写法 (产生 2 次 Shuffle)SELECTdept,date,sales,-- 第一次 Shuffle: PARTITION BY dept ORDER BY date-- 第二次 Shuffle: PARTITION BY dept (无 ORDER BY,但分区逻辑虽同,排序逻辑不同,旧版本可能不复用)
2026-01-24 11:47:17
1029
原创 对Hive表进行归档,减少小文件的影响
Hive归档仅推荐用于冷数据/静态数据(如历史日志、过期报表、长期不修改的备份数据),不适合热数据(频繁写入或更新的表)。开启Hive自动合并小文件参数(使用ORC/Parquet列式存储(自带文件合并和压缩优化);通过Spark写入时主动调整分区数(综上,归档是Hive解决小文件问题的“轻量方案”,但需根据数据的读写特性合理选择,避免因局限性影响业务灵活性。
2025-09-22 21:29:11
1098
原创 Hive中的with子句
Hive中的WITH子句(CTE)是一种简化复杂查询的工具,允许定义临时结果集并在查询中多次引用。其主要优势包括逻辑隔离、提升可读性及避免重复计算。CTE适用于简化嵌套查询、分步处理数据、递归查询层级数据等场景。最佳实践包括使用有意义命名、控制引用次数、避免过度嵌套等。与临时表相比,CTE适合内存处理简单逻辑,而临时表更适合大数据集多次引用。使用时需注意版本兼容性、执行计划分析和递归终止条件。合理使用CTE能有效优化Hive查询性能。
2025-08-27 21:13:51
1200
原创 dbt中多源数据的处理
本文介绍了在dbt中处理多数据源的核心方法。通过安装对应数据库适配器(如dbt-mysql、dbt-postgres等)并配置profiles.yml文件管理不同数据库连接。关键步骤包括:1)使用sources声明各数据库原始表;2)通过config指定模型输出目标库;3)采用分层架构(原始层→集成层→应用层)统一管理数据。建议将分散数据清洗后集中到单一分析库(如DuckDB),再通过ref()函数实现跨模型引用,避免复杂跨库查询。这种方法实现了多数据源的统一管理,同时保持dbt的核心功能。
2025-08-02 20:47:38
1233
原创 hive-distribute by使用场景解析
DISTRIBUTE BY 的最佳实践围绕 数据倾斜治理、Join 局部性优化 和 预聚合数据对齐 展开。实际应用中需结合业务场景、数据分布特点和执行引擎特性灵活调整,建议通过实验对比不同配置的性能差异。
2025-03-01 21:54:44
1457
原创 删除hive用户后该用户创建的表权限问题及修复
当hive集群开启多用户的模式下,假设用户组A的用户hive_test创建了一个表, 此时另一个用户也是可以访问这个表的,但是因为一些原因,目前需要删除用户组A和用户hive_test, 在这个情况下,该用户创建的表,此时能否正常被进行查询或者数据插入等操作? 如果不能,应该如何修复这个问题?
2025-02-20 10:15:37
1512
原创 vsFTPd服务部署和用户模式简介
服务器部署vsftp,vsftp用户模式说明,PAM认证,解决用户密码正确,无法登录的疑难问题(直接跳转最后查看解决办法)
2025-01-06 23:01:25
1643
原创 正则表达式优化建议
当使用忽略大小写的标志时(例如在某些编程语言中通过特定的参数或修饰符),可能会意外地匹配到不希望的字符串。在优化后的表达式中,我们简化了模式,使用嵌套的分组和可选的量词。但如果对字符串的结构理解错误,可能会错误地使用锚点,导致不期望的匹配结果。)虽然是为了减少匹配量,但在复杂的表达式中可能会导致意外的行为,因为它们的行为取决于周围的模式和回溯机制。捕获组可能会捕获不需要的文本,或者在不需要捕获的时候进行了捕获,导致性能下降和结果的混乱。)时,如果不仔细考虑字符的范围,可能会意外地包含不需要的字符。
2024-09-02 22:19:30
1838
原创 REST framework-通用视图[Generic views]
REST framework-通用视图[Generic views]学习使用
2024-08-14 22:58:16
1027
原创 docker开发环境搭建-关于数据库的IP是什么
我在本地的ubuntu系统上安装了docker,并创建了一个mysql容器,但是在使用DBeaver连接该数据库时,需要填写数据库的ip,填写127.0.0.1,工具提示找不到这个库,然后使用。这将把主机的3306端口映射到容器的3306端口。现在,可以使用IP地址来连接DBeaver中的MySQL数据库。,查看返回的信息,然后,也没有找到需要的答案。替换为创建的MySQL容器的实际ID或名称。这将返回容器的IP地址。然后,可以在DBeaver中使用此IP地址连接到MySQL数据库。
2024-08-08 19:10:20
463
原创 Hive-函数-时间处理
在Hive中,处理时间数据的函数非常有用,尤其是在处理包含时间戳或日期字段的大数据时。以下是一些Hive中相对频繁使用的时间处理函数,包括它们的名称、参数、功能以及SQL示例。
2024-08-05 11:52:11
1422
原创 Hive-函数-窗口函数
Hive中常用的窗口函数(也称为开窗函数)丰富多样,这些函数能够在进行数据分析时提供强大的支持,特别适用于需要对分组数据进行复杂计算和排序的场景。
2024-08-05 11:49:09
1610
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1