- 博客(144)
- 资源 (4)
- 收藏
- 关注
原创 【大数据实战案例】解决由手机号缺失引发的数据倾斜,提速10倍
本文总结一个数据倾斜的问题,该问题由 SQL 函数对手机号分组时引发,做数仓开发的同学在在业务实战过程中,或许会遇到过。先简单介绍一下什么是数据倾斜和为什么会造成数据倾斜。数据倾斜是在分布式计算系统中经常遇到的一种现象,特别是在大数据处理和分析领域。它指的是数据在被分割并分配到多个计算节点上进行并行处理时,数据分布不均匀,导致某些节点处理的数据量远远大于其他节点的现象。在 MapReduce 中,数据倾斜也是比较常见的一个问题,稍不留意可能就会出现数据倾斜的问题。
2024-08-18 23:55:35 1098
原创 飞书API 2-7:如何将 MySQL 数据库的查询结果写入多维表(下)
上一篇,解决了数据持续插入更新的问题。在一些场景下,如果数据量较大,需要跑多个任务调用接口插入,但是逐个跑任务又太久,又该怎么提高执行速度呢?本文就来探讨下怎么使用多线程来完成多任务的更新操作。
2024-08-04 12:11:31 1258
原创 在 Windows 搭建 flink 运行环境并模拟流数据处理
在大数据场景中,开发者追求高效与灵活,Linux 系统以其稳定性成为众多组件的首选,但在资源有限的情况下,在本机搭建一个 Linux 虚拟机集群却显得过于笨重,启动、运行占资源,需要配置网络,无法和windows共享资源,尤其是对只有 8GB 内存的 Windows 系统用户来说,内存压力显而易见。尽管如此,也挡不住一个学习者的“热情”。本文介绍怎么在 Windows 本地搭建 Flink 环境,注意这是一个伪分布式的测试环境。
2024-07-24 10:08:29 3079
原创 飞书API 2-6:如何将 MySQL 数据库的查询结果写入多维表(中)
接上一篇,已经解决了单向的数据传输问题,即:将 MySQL 的数据写入到多维表。但是如果需求具有持续性,换句话说,每隔一段时间需要同步一次数据,今天需要同步数据,明天还需要同步数据,又该怎么办?本文针对这两种同步策略展开探讨下如何持续同步数据。
2024-07-24 09:37:46 1170
原创 MySQL 时区问题:设置了 my.ini 并重启了服务,依旧是 0 时区
解决时区的方法有 4 种,分别对应不同的场景下的操作,其中最后一种是本次问题的唯一解法,解决了 my.ini 文件中一些配置“失效”的问题。会话(本次会话):影响当前客户端的会话。优点:不需要重启MySQL服务,缺点:临时策略,一旦MySQL服务被重启,设置就会消失。set time_zone = '+08:00';全局(本次服务):影响所有新连接到MySQL服务器的客户端。优点:不需要重启MySQL服务,缺点:临时策略,一旦MySQL服务被重启,设置就会消失。set global time_
2024-07-15 18:35:43 866
原创 飞书API 2-5:如何将 MySQL 数据库的查询结果写入多维表(上)
本文完整探讨了使用 MySQL 数据库+ Pandas 库 + 飞书应用实现了业务的一个数据需求:将某产品的用户数据同步到飞书表上。整个流程涉及了五大步骤:目标分析:将需求数据同步到飞书多维表协作创建飞书数据表:分析需求字段的类型、数据格式等查询数据库数据:连表查询数据并对数据值和字段名进行格式化Pandas处理数据:将格式化的数据转为 API 需求的请求体的格式写入飞书多维表:调用飞书新增多行记录的 API,将数据写入飞书多维表
2024-07-15 18:34:54 1997
原创 飞书 API 2-4:如何使用 API 将数据写入数据表
上一篇创建好数据表之后,接下来就是写入数据和对数据的处理。本文主要探讨数据的插入、更新和删除操作。所有的操作都是基于上一篇(飞书 API 2-4)创建的数据表进行操作。上面最终的数据表只有 2 个字段:序号和邮箱。序号是多维表自动填充的自增数字,所以我们处理的时候不需要处理该字段,只需要处理邮箱即可。
2024-07-07 10:15:15 2779
原创 飞书API 2-3:如何使用 API 创建数据表,解放人工?
作为飞书多维表的深度使用者,经常需要将一些数据库的数据同步到多维表上,在数据写入之前,一般需要新建数据表和字段。当通过网页端界面新建字段时,如果字段少,还能接受手动一个个创建,不过一旦字段比较多,操作起来特别繁琐,机械地重复着,有点怀疑人生。这种情况下,急需一个更加自动化的方式来解决!这不,飞书官方便提供了这样的 API 方便我们快速建数据表和字段。
2024-06-30 10:47:51 1144
原创 飞书API 2-2:如何使用 API 建多维表
本文探讨了如何通过 API 创建多维表。具体操作如下:获得文件夹的权限应用配置:在应用后台开启机器人的能力创建群组:专用于文件夹授权群组配置:添加应用机器人文件夹授权:分享给新建的群组使用 API 创建多维表其中,应用和群组配置可以视为一次性操作,后续只需要进行文件夹给群组授权,便可以使用 API 创建多维表。
2024-06-22 18:32:20 1931 2
原创 飞书API 2-1:如何通过 API 创建文件夹?
本文探讨了如何通过 API 创建文件夹并且给指定的用户开通协作权限。具体操作如下:申请权限:创建云空间文件夹、通过手机号或邮箱获取用户 ID调用获取 access_token 的 API调用创建文件夹的 API调用获取用户 ID 的 API调用添加协作者的 API思路相对比较简单,但实际操作比较繁琐。
2024-06-16 16:35:58 1632
原创 数仓开发:如何计算投放效果?
本文介绍了怎么实现以引流的低价订单的为基本维度,按照业务 30天的间隔分别聚合低价订单退款、高价订单金额和高价订单退款金额。采用了两层表单的设计,一层事实表,一层根据业务不同的口径进行聚合。处理业务逻辑的时候,根据事实表的结构,采用分段聚合的逻辑先聚合【低价订单+高价订单】,然后再根据【低价订单】进行聚合,最终得到目标表。目标表开发好之后,在该表的基础上,根据各类业务指标进行聚合并可视化,最终提交给业务方使用。
2024-06-08 18:40:18 1005
原创 飞书API(11):阿里云MaxCompute分区表入库
前面入库阿里云 MaxCompute 的数据都是读取之后直接写入,保留数据最新的状态,MaxCompute 表有一个分区功能,可以自行定义分区。我们可以使用 MaxCompute 表的分区功能,每天写入一个分区,保留每天每条数据的状态。表单的分区功能,除了存储每天数据明细信息,也可以根据数据中的某个维度做分区。本文重点来探讨下怎么建分区表以及怎么写入分区表。
2024-06-02 22:20:45 1106
原创 飞书API(10):通过阿里云MaxCompute数仓入库 - 转为阿里云 DataFrame 再入库
本文探讨了怎么通过 PyODPS 的 DataFrame 将飞书数据入库,主要涉及四点:新增 PyODPS 的 DataFrame 的数据类型映射、定义 astype、将飞书数据转为 PyODPS 的 DataFrame 并入库和定制化中新增 astype 的修改。PyODPS 的 DataFrame 更多用于数据科学计算,方便将分析的结果数据保存到表中,此处仅用它作为一个中间桥梁,将 pandas 的 DataFrame 和数仓表连接起来。
2024-05-26 00:53:34 448
原创 飞书API(9):通过阿里云MaxCompute数仓入库
本文结合前面两个章节:MySQL 入库的通用版和定制版,探讨了如何将飞书多维表的数据入库到阿里云 Maxcompute 的数据表,并实现通用版和定制版的逻辑。首先分析了 MySQL 和 MaxCompute 之间的数据类型差异,并提到了处理函数extract_key_fields()中需要修改的逻辑,以适应MaxCompute的配置需求。然后探讨了建表和写表的方法,建表分为通过创建表Schema再建表和直接使用字段名和字段类型创建表两种方法。写表也有两种方法,一种是转为阿里云的 DataFrame,
2024-05-19 16:30:59 1060
原创 飞书API(8):MySQL 入库定制版本
通用版能解决百分之八九十的任务,剩下的部分任务需要进行定制。先说明通用版本和定制版本有什么不同,通用版本就是只管大的数据类型,将数据处理为对应的类型入库,而定制版本会考虑局部列的数据类型,。举个简单的例子,比如说飞书编号为 2 的数据类型,它实际上包含了整数和小数,在通用版本,会把它处理为 double 或 float 类型以便保留小数的精度,但是定制版本可能会把整数列单独处理,入库为 int 数据类型类型。
2024-05-12 00:11:08 680 1
原创 飞书API(7):MySQL 入库通用版本
本文完成了飞书多维表数据写入 MySQL 数据库的通用版本代码的开发,经过对代码进行重构,把三组核心关系:飞书列名和数据类型、飞书列名和入库表单字段名、飞书数据类型和入库字段的数据类型解耦出来,使得代码通用性更强。
2024-05-04 23:33:25 1729 3
原创 飞书API(6):使用 pandas 处理数据并写入 MySQL 数据库
本文介绍了如何处理飞书的 28 中数据类型,以及通过 sqlalchemy 库将处理好的数据入库。在探索一个未知的领域时,一般会从个别典型的案例先入手,随着认知的不断深入,逐渐有全局观,便会考虑通用案例,然后在通用案例下,再考虑局部的需求定制。本文是一个比较全面的案例,更多的是在提供一个解决思路,相关代码的可拓展性较差,下一遍介绍另外一个飞书的 API 读取多维表的元数据来优化可拓展性问题,使得代码变得更加通用。下下篇则在通用的基础上再做定制化需求。
2024-04-28 09:23:30 2276 1
原创 飞书API(5):查看多维表 28 种数据类型的数据结构
整体上,我们可以分两部分来查看整个数据结构:第一部分是外层的结构,第二部分是“fields”的结构。第一部分是通用的,而第二部分各个数据类型各有不同,具体详见文章说明。
2024-04-21 21:27:39 2481
原创 飞书API(4):筛选数据的三种思路
本文探讨了三种处理多维表筛选数据的思路:- 思路一:获取所有数据,使用 pandas 进行数据筛选;- 思路二:调查询记录接口时,传递 filter 参数进行数据筛选;- 思路三:在多维表新建视图进行筛选,然后指定视图,读取所有数据。
2024-04-14 23:58:50 1844
原创 飞书API(3):Python 自动读取多维表所有分页数据的三种方法
使用 Python 读取多维表分页,需要传递“page_token”参数。第一页“page_token”参数为空字符串,第二页开始从上一页的响应体提取“page_token”的值。使用 Python 实现,可以通过三种方式读取所有分页的数据:while 循环读取、for 循环读取和内函数递归读取。● while 循环:使用has_more参数,直到has_more=False跳出循环;● for 循环:使用total参数,结合page_size计算循环次数;● 内函数递归:使用has_more参数
2024-04-07 00:13:16 2616
原创 飞书API(2):通过 Python 读取多维表数据
使用 Python 自动读取多维表主要分两步:第一步是取应用的 app_id 和 app_secret 获取临时 tenant_access_token,传递给第二步;第二步是取 tenant_access_token 加上 多维表的标识(app_token、table_id)读取数据。
2024-03-31 23:52:47 6441 2
原创 飞书API(1)-读取飞书多维表数据
本文介绍如何通过飞书 API 读取飞书多维表的数据,从创建应用到发布,再到 API 调试。详细流程如下:1、创建应用2、申请权限,发布版本3、创建多维表,并设置应用操作多维表的权限4、查看接口文档,并调试 API。
2024-03-25 09:09:45 4095
原创 Pandas DataFrame 写入 Excel 的三种场景及方法
本文主要介绍如何将 pandas 的 DataFrame 数据写入 Excel 文件中,涉及三个不同的应用场景:- **单个工作表写入**:将单个 DataFrame 写入 Excel 表中;- **多个工作表写入**:将多个 DataFrame 写入到同一个 Excel 表中的不同工作表中; - **追加模式写入**:针对已有 Excel 文件,在不覆盖原有数据的前提下,将新的 DataFrame 数据追加至指定的工作表中。
2024-03-10 23:57:22 12602
原创 Pandas DataFrame 转 Spark DataFrame报错:AttributeError_ ‘DataFrame‘ object has no attribute ‘iteritems‘
处理方案如下,根据自身需求选择:- 降低 pandas 版本:`pip install pandas==1.5.3`- 用 items() 替换 iteritems():`pd.DataFrame.iteritems = pd.DataFrame.items`- 升级 spark 版本:下载链接:[https://spark.apache.org/downloads.html](https://spark.apache.org/downloads.html)
2024-01-27 11:47:14 1599 1
原创 GPT3.5 改用 GPT4 价格翻了30倍 如何破局? GPT 对话成本推演
假设你搭建了一个平台,提供 ChatGPT 3.5 的聊天服务。目前已经有一批用户的使用数据,想要测算一下如果更换 GPT 4.0 服务需要多少成本?
2023-12-31 19:47:21 1886
原创 如何计算 ChatGPT 的 Tokens 数量?
本文主要介绍了 GPT 如何计算 Tokens 的方法,官方提供了两种方式:网页计算和接口计算。网页计算不需要技术,只需要魔法即可体验,而接口计算,事实上接口计算包含了两种方法,一种使用tiktoken,则需要点 Python 基础,而openai还需要点网络基础和货币基础,需要代理和 plus 账号(20刀/月)等。
2023-12-05 09:15:00 7991 2
原创 使用 PyODPS 采集神策事件数据
本文主要介绍将神策数据入库的相关操作。目标:将神策数据入库到 MaxCompute 数仓。最终的解决方案的整个流程梳理下来其实就是:请求神策数据->Pandas 处理数据->转为 MaxCompute 数组并入库。
2023-11-25 13:44:56 791
原创 Jupyter notebook 无法链接内核、运行代码
整个过程,首先是验证 Jupyter 出问题是 Vscode 插件的问题,还是整体都出问题,定位到时整体出问题之后,尝试在本地打开它,结果打不开,因为部分包冲突了!解决包冲突问题,终于可以打开,不过依旧还是有问题——无法连接内核,无法执行代码。根据终端报错,逐一排查问题并解决掉:调用错误:升级一下prompt_toolkit,升级ipython;文件冲突:忽略;路径错误:修改…\Lib\s
2023-11-12 01:27:37 1499 1
原创 Dataworks API:调取 MC 项目下所有表单
本文介绍了从 Dataworks 项目中获取所有表单字段的方法,基本步骤如下:查看官方文档,了解约束和接口;在线调试,并获取源码;配置本地环境,安装 alibabacloud_dataworks_public20200518;配置环境变量,新增两个环境变量ALIBABA_CLOUD_ACCESS_KEY_ID和 ALIBABA_CLOUD_ACCESS_KEY_SECRET,并将阿里云账号的 ACCESS_KEY_ID 和 ACCESS_KEY_SECRET 分别作为对应变量的值;测试源码,打
2023-10-27 20:53:24 1032
原创 VMware _ Ubuntu _ root 密码是什么,怎么进入 root 账户
在 VMware 安装 ubuntu 虚拟机之后,root 用户的密码是什么?安装的过程也没有提示输入 root 用户的密码,只有创建第一个非 root 用户的密码。但是 root 用户是存在的,又怎么切换到 root 用户呢?事实上,root 用户存在,但是没有密码,如果你输入命令su root,然后输入创建第一个账户的密码,会提示以下报错:安装过程没有输入过 root 密码,那是不是有创建 root 的密码的方法,或者通过其他的方式进入 root 用户呢?都有的!下面一个个介绍。
2023-10-13 08:14:32 3871
原创 下载安装 VMware & Ubuntu(server 命令行版本)虚拟机
VMware 是什么?虚拟机是什么?二者有什么关系?VMware 是一种虚拟化软件,而虚拟机则是通过虚拟化技术创建的一个计算机环境。具体来说,VMware 是一款软件产品,它提供了一套完整的虚拟化解决方案,包括虚拟机管理器、虚拟机监控器、虚拟机操作系统等组件。虚拟机则是指通过虚拟化技术在一台物理计算机上模拟出的虚拟计算机环境。每个虚拟机都拥有自己的 CPU、内存、硬盘、网络接口等资源,可以独立安装和运行操作系统和应用程序。通过 VMware,我们可以在一台物理服务器上运行多个虚拟机。
2023-10-01 23:59:21 1787
原创 阿里云大数据实战记录10:Hive 兼容模式的坑
解决 MaxCompute 不支持这个语法`DATE_FORMAT(string, string)`的方法本文提供了两种:方法1:开启 Hive 兼容模式方法2:显性修改传入`FROM_UNIXTIME(1672538400)`返回的数据类型另外,传递给`DATE_FORMAT()`的参数如果是 DATETIME 类型,会被隐性转换为 STRING 处理。
2023-09-16 17:54:44 2301
原创 阿里云大数据实战记录9:MaxCompute RAM 用户与授权
本次探索过程,发现了一个问题,阿里云产品,可能每一个都会有自己的控制台,有自己的一套权限管理,配置权限前,需要先思考,这个权限是在哪一个平台上使用,然后针对性去对应的文档和对应的控制台中寻找解决方案。就如本次,处理的内容其实是 MaxCompute 项目级别的问题,需要到项目中去寻找解决方案,一开始我配置了 RAM 用户相关权限,也在数据保护伞和 DataWorks 用户管理上面也尝试了解决方案,不过都是无用功,无法最终解决问题,只是更加清晰地了解了阿里云的权限管理逻辑。
2023-09-04 08:30:00 1320
原创 阿里云大数据实战记录8:拆开 json 的每一个元素,一行一个
本文分别通过 pgsql、ODPS SQL 和 MySQL 三种 SQL 语法进行 json 类型的处理。其中,使用 pgsql 处理方式最简单且简洁,而 ODPS SQL 最复杂,中间进行了多次数据类型的变更,甚至还需要使用一种更少见的数据类型 map 类型来辅助处理;而 MySQL 则处于二者之间。
2023-08-29 19:17:54 1978
原创 阿里云大数据实战记录7:如何处理生产环境表单的重复数据
在处理生产环境中的重复数据时,实际上就是要从表单中删除重复的数据,可以采用多种删除方式。比如:覆盖写入(`INSERT OVERWRITE`),该方式本质上是先清除数据,然后再进行插入操作,我们将新插入的数据进行去重即可。这个方式可以通过调度任务来实现,也可以通过查询窗口执行代码来实现。如果只是局部的几条数据出现问题,也可以手动进行处理,只需指定删除重复数据,然后再插入一次被删除的数据即可。
2023-08-17 08:59:31 322
原创 阿里云大数据实战记录6:修改生产环境表单字段数据类型
最终的方案更准确的说法是删表重建,以实现“修改字段数据类型”的目的,不过中间绕了些弯子。如果只是在开发环境中处理,还是会比较方便,对开发表进行删表重建(),使得数据表的数据类型和要插入的数据保持一致;或者修改插入数据的数据类型(cast),使得插入数据的数据类型和已创建数据表的数据一致;或直接修改数据表的数据类型(Alter),这个方案需要项目安全操作的权限。但是如果是发布到了生产环境,便会更加麻烦,除了以上可供选择的方法需要进行两次操作外,还涉及到表单的使用权限问题,所以一般建议非必要不删表!
2023-08-15 08:58:32 1835
原创 阿里云大数据实战记录5:修改生产环境表单字段名称
1、开发环境和生产环境的表单的字段名要保持一致!这样才可以将开发环境的表提交到生产环境。如果要修改字段名,需要两端都进行修改,再提交。注意一个前提,必须要有开发环境和生产环境相关表单的alter权限。2、如果有外表也需要重建,修改的字段不会同步更改,会导致查询不到相关的数据。这个流程还是比较繁琐的,这还不涉及表单的调用,所以能不改尽量不改,前期的数仓表设计多花点功夫做好规范,这很重要!
2023-08-06 22:24:27 915
原创 PostgreSQL:使用 JSON 函数和正则表达式,带你轻松高效处理半结构化数据
本文围绕PostgreSQL数据库中的JSON函数和正则表达式的运用,由浅入深介绍了几种常用数据处理方法,分别是JSON 取值、拆分键值对、拆分字符串和批量匹配字符串。PostgreSQL的JSON数据类型表现出极大的灵活性,支持键值对和嵌套数组结构,使得我们能够方便地存储和检索非结构化数据。而且,再结合具有优秀处理字符串能力的正则表达式,处理非结构化数据就变得轻而易举。由于文章篇幅的限制,仅介绍了JSON 函数和正则表达式很小的一部分内容。如果你想获取更多信息,了解更全面的知识
2023-07-16 13:05:58 2076
原创 AI 笔记3:如何使用 WPS AI 处理Excel数据,提高数据处理效率
按目前测试下来,比较靠谱的是写公式和条件格式,智能分类、智能提取和情感分析这三个功能似乎用途更小,效果似乎也没有让人惊喜。以后不懂公式,也不要紧了,只要会Prompt,可以调动 AI 来助力。对于特别复杂的公式,其实也是可以拆分为很多个子公式,然后再进行拼接,所以需求的理解和拆解也相对重要,这二者加上 AI 助力,基本上超过9成的场景应该能够轻松解决。剩下的可能是 AI 的边界,目前尚未清楚该边界在哪里。
2023-07-09 23:09:31 4839
Python 使用 simple-http-server 在局域网上传下载数据
2023-03-22
Python 网络服务 droopy 模块源文件
2023-03-15
Tableau 合集3:格式设置之可视化图显示百分比和提示工具对齐问题
2022-11-26
Python 算法:线性回归及相关公式推导 第4部分公式推导源代码
2022-11-21
大数据分析中用Python结合Table Extension处理数据
2022-11-06
Python文件(TXT、csv、图片、音频、视频等)读写
2022-10-12
Python 基础:模块和包(下)--发布属于自己的第一个模块包-相关代码包
2022-10-06
Tableau 数据处理:计算平均值容易犯的错
2022-09-02
Tableau计算用户注册之后6个月内订单数
2022-08-19
Excel实战-帮业务人员做道Excel题数据表-用于学习
2022-08-03
BI工具之Tableau 自定义调色板及应用全流程讲解
2022-06-23
关系型数据库中MySQL常用函数的作用和例子说明
2022-06-13
泰坦尼克号train(仅有旅客ID和名字)
2022-04-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人