- 博客(459)
- 资源 (5)
- 收藏
- 关注
原创 PyCharm 远程开发详解
PyCharm 的远程开发能力为 Python 开发者提供了极大的灵活性。对于大多数团队而言,SSH 部署 + 远程解释器 是平衡易用性与功能性的首选;而对于追求极致资源隔离或云端开发的用户,JetBrains Gateway 架构 则代表了未来方向。无论选择哪种方式,合理利用远程开发不仅能提升硬件资源利用率,还能确保开发、测试、生产环境的一致性,是现代 Python 工程实践的重要组成部分。建议根据项目规模、团队协作模式及基础设施条件,选择最适合的远程开发策略。
2026-01-09 23:22:35
225
原创 Airflow 如何让任务编排更清晰
传统的手写调度方式将流程控制、状态更新和业务逻辑混杂在一起,导致代码难以维护和扩展。业务开发者只需提供无状态的、可复用的函数。通过 DAG 文件用简洁的语法声明任务间的依赖关系。Airflow 负责执行调度、状态跟踪、失败重试、日志收集和可视化。任务编排,本就不该是业务代码的一部分。把流程交给 Airflow,把逻辑留给自己。如果你正在维护一堆“自研调度脚本”,是时候考虑迁移到 Airflow 了。它不会替你写业务逻辑,但它会让你的 pipeline 更健壮、更清晰、更易维护。
2026-01-09 00:09:52
471
原创 十个值得了解的 Linux 高价值功能/工具
用systemd管服务 +journalctl看日志 +htop监控资源用inotify监控配置 + 自动 reload 服务用firewalld开端口 +ss验证是否生效你不需要记住所有命令,但要知道“有这么个东西存在”。遇到问题时,就能快速想到:“啊,是不是可以用 XXX 来解决?
2026-01-07 00:13:52
257
原创 使用 systemd 部署一个简单的 Flask 应用(二)
Docker 并非万能。对于简单、稳定的单机服务,systemd + 虚拟环境 + 启动脚本 提供了一种“刚刚好”的部署哲学:没有抽象,就没有 overhead;没有容器,就没有复杂。这套方案轻量、透明、可控,特别适合 VPS、树莓派、自动化脚本或内部工具的部署。希望这篇教程能帮你构建一个既简单又健壮的服务!如果你喜欢这种“少即是多”的风格,不妨试试看——你会发现,Linux 原生工具链依然强大如初。🐍✨。
2026-01-06 23:47:06
762
原创 使用 systemd 部署一个简单的 Flask 应用(一)
通过systemd管理 Flask 应用,不仅简单高效,还能获得系统级的稳定性保障。虽然本文仅演示了一个 “Hello World” 应用,但其模式适用于绝大多数后台服务程序。希望这篇教程能帮你迈出自动化部署的第一步!如果你有任何疑问或想了解如何进阶(比如结合 Nginx + Gunicorn),欢迎留言讨论。🐍✨。
2026-01-06 23:22:26
306
原创 Kubernetes 是什么?
K8s 是容器时代的“操作系统” —— 它让你不再关心“在哪跑”,只需声明“要什么”,剩下的交给它自动完成。如果你正在构建微服务、AI 平台、SaaS 应用或任何需要高可用、弹性伸缩的系统,K8s 几乎是行业标准。
2026-01-05 23:21:54
739
原创 理解 nohup command &:在后台运行持久命令
是一个简单而强大的工具,特别适用于服务器管理或需要长时间运行任务的场景。通过后台执行和忽略挂断信号,它确保了命令的持久性和稳定性,让你可以安心关闭终端而不中断重要进程。
2026-01-05 22:56:45
361
原创 用子命令架构设计领域专用 CLI 工具
优秀的命令行工具不仅仅是功能的集合,更是对问题域的精准建模。通过子命令架构,我们将复杂的操作转化为自然、可组合的语言单元。下次当你面对一个新领域时,不妨先问:“用户在这个场景下,最常说的动词是什么?答案,就是你的子命令。
2026-01-05 22:38:24
810
原创 Linux 配置文件解析: /etc 目录指南
开发者可在此目录创建.service文件,定义后台应用的启动方式。[Unit][Service][Install]/etc网络与域名(hosts服务配置(Web 服务器、SSH、Docker、systemd)环境与依赖(Shell 初始化、软件源)系统调优(sysctl、ulimit、日志)其余配置应视为系统内部实现细节,交由运维流程、自动化工具(如 Ansible、Puppet)或容器平台处理。真正的专业,不在于能改多少配置,而在于知道什么不该改。
2026-01-05 00:41:51
832
原创 Linux 目录组织最佳实践
Linux 的文件系统看似复杂,实则遵循一套高度一致的设计哲学:分层隔离、职责分明、安全可控。掌握这套逻辑,不仅能提升使用效率,还能避免误操作导致系统不稳定。无论你是普通用户、开发者还是系统管理员,都能从中找到适合自己的使用策略。
2026-01-05 00:03:50
513
原创 基于Docker Compose的前后端分离应用部署
本文将演示如何使用 Docker Compose 构建一个前后端分离的应用,包含 Flask 后端 API、Vue 前端和 Nginx 反向代理服务。重点介绍 Docker Compose 的使用、服务编排以及生产级部署的最佳实践。
2026-01-01 23:18:43
295
原创 从 Shell 脚本到 Docker Compose:环境管理方案的选择
Shell 脚本和 Docker Compose 不是对立的解决方案,而是适用于不同场景的工具。对于简单场景,Shell 脚本的简洁性是无可替代的;对于复杂场景,Docker Compose 提供的标准化和一致性则至关重要。工具应该服务于开发目标,而不是成为目标本身。有时候,最简单的解决方案恰恰是最优雅的解决方案。无论选择哪种方案,关键是要保持一致性、可重复性和文档化。这样,无论项目规模如何变化,环境管理都不会成为开发流程的瓶颈。
2025-12-30 20:24:36
444
原创 Dockerfile 核心配置解析
容器化技术的核心在于镜像构建,而 Dockerfile 作为镜像构建的蓝图,直接决定了容器的行为、性能和安全性。本文将从基础到进阶,系统解析 Dockerfile 的核心配置指令和最佳实践。
2025-12-30 20:06:59
339
原创 Docker Compose 核心配置解析
每个 Docker Compose 文件的核心是services部分,它定义了要运行的各个容器。services:webapp:build: .镜像来源build:从 Dockerfile 构建镜像build: .使用当前目录的 Dockerfile指定上下文和文件名image:使用现有镜像services:app:build: .
2025-12-30 19:53:54
382
原创 Redis 如何存“表”?
单条记录→ 用Hash或JSON多条记录→ 多个 key +SetSorted Set维护 ID 列表字段查询→ 手动建立反向索引(复杂查询→ 使用 RedisSearch + RedisJSON(推荐 Redis Stack)理解 Redis 的数据模型,并根据业务需求权衡查询能力与维护成本。
2025-12-29 01:38:18
410
原创 Spark学习笔记
虽然Spark DataFrame API的设计灵感来源于Pandas,但作为分布式计算框架,Spark有着独特的特点和最佳实践。本文围绕Spark的核心功能,提供相应的样例代码,帮助从Pandas过渡到Spark,并理解两者的差异。pyspark。
2025-12-28 15:10:31
298
原创 使用Spark处理HDFS上的Parquet文件
Apache Spark是一个开源的分布式计算框架,专为大规模数据处理而设计。内存计算:Spark可以将中间数据缓存到内存中,比MapReduce的磁盘读写快10-100倍易用性:支持Java、Scala、Python和R等多种语言,提供高级API多功能性:包含Spark SQL(结构化数据处理)、Spark Streaming(流处理)、MLlib(机器学习)和GraphX(图计算)等组件兼容性:可以运行在Hadoop YARN、Mesos或独立集群上,并能访问HDFS、HBase等多种数据源。
2025-12-28 15:08:42
365
原创 Apache项目分类与功能概述
核心平台与处理引擎:数据处理与集成:数据湖与表格式:列式存储与格式:资源调度与编排:查询引擎:数据治理与安全:数据服务与中间件:大数据工具集:NoSQL数据库:关系型/MPP/分析型数据库:时序数据库:图数据库与处理:对象存储:嵌入式/内存数据:分布式存储与日志服务:内容仓库:数据库分片与集群:数据访问层:消息队列/消息中间件:流处理(与大数据有重叠):流处理工具:云平台与虚拟化:无服务器与函数计算:机器学习平台与库:模型服务与编译器:自然语言处理:数据草图与近似算法:搜索引擎库:搜索平台:网络爬虫:内容连
2025-12-25 01:49:48
907
原创 Parquet与DuckDB:现代数据存储的两种选择
Parquet和DuckDB代表了现代数据处理的两个重要方向:高效的数据存储格式和嵌入式分析数据库。Parquet是数据交换和批量处理的理想选择,而DuckDB则为需要完整数据库功能但不想管理数据库服务器的应用提供了完美解决方案。需要跨平台共享数据或最小化存储?选择Parquet需要复杂查询、更新和事务?选择DuckDB不确定或两者都需要?幸运的是,它们可以很好地协同工作无论选择哪种,这两种技术都为数据处理提供了高效、现代的解决方案,是每个数据工程师和分析师工具箱中值得拥有的工具。
2025-12-25 00:44:25
703
原创 Parquet与DuckDB:现代数据分析中的存储与引擎之选
当数据以列式结构静静躺在Parquet文件中时,DuckDB正以向量化引擎高速扫描这些数据块,现代数据分析的高效秘密正隐藏在这对组合的无缝协作中。Parquet作为一种已成为大数据生态系统的标准,而DuckDB作为一个正在快速崛起。它们看似不同层级的技术——一个是存储格式,一个是查询引擎,却在现代数据栈中形成了强大的互补关系。
2025-12-21 21:09:29
724
原创 动手学 DuckDB:从零到实践
今天我们不谈太多理论,直接上手体验 DuckDB。这篇指南将带你完成一次完整的数据分析流程,感受这个嵌入式分析引擎的便捷与强大。
2025-12-21 20:58:39
276
原创 DuckDB:为数据分析而生的嵌入式引擎
DuckDB是一个开源的嵌入式分析型数据库管理系统。在本地直接、高效地分析数据,无需复杂的服务器部署或数据迁移。“嵌入式”是其核心特点。就像SQLite适用于事务处理一样,DuckDB为数据分析场景提供了类似的便捷性。你只需一个库文件,就能在进程内运行完整的分析数据库,无需单独的服务进程。专业化、轻量化、嵌入式。它填补了本地数据分析工具链中的一个重要空白,让数据分析变得更加直接和高效。在数据驱动决策日益重要的今天,能够快速、轻松地从数据中获得洞察变得至关重要。
2025-12-21 20:57:20
735
原创 动手学 Parquet:从零到实践
如果你已经了解了 Parquet 的基本概念,现在是时候动手实操了。这篇指南将带你一步步掌握 Parquet 的实际使用。
2025-12-21 13:35:49
220
原创 Parquet:为大数据而生的高效存储格式
要理解 Parquet 的价值,首先要明白它与传统行式存储的区别。想象一张员工表,包含ID、姓名、部门、工资等字段。[1, 张三, 技术部, 15000][2, 李四, 市场部, 12000][张三, 李四, 王五...][技术部, 市场部, 技术部...]这种差异看似简单,却带来了根本性的性能优势。Parquet 的成功并非偶然。它通过精妙的设计,在存储效率、查询性能和生态兼容性之间找到了优雅的平衡点。在大数据时代,选择合适的存储格式与选择计算框架同等重要。
2025-12-21 13:34:46
627
原创 Airflow教程四:对象存储
本教程展示了如何使用对象存储API管理存储在S3、GCS和Azure Blob Storage等对象存储上的对象。该API作为Airflow 2.8的一部分引入。教程涵盖数据工程和数据科学工作流中常用的一种简单模式:访问Web API、保存并分析结果。
2025-12-21 11:21:30
852
原创 Airflow教程三:构建运行管道
让我们看另一个示例:需要从在线托管的文件中获取数据,并将其插入到本地数据库中。同时,在插入过程中需要考虑删除重复行。
2025-12-21 11:20:16
962
原创 Airflow教程二:使用TaskFlow
如果这是您查看的第一个DAG文件,请注意这个Python脚本是由Airflow解释的,并且是数据流水线的配置文件。关于DAG文件的完整介绍,请查看核心的基础教程,该教程广泛涵盖了DAG结构和定义。
2025-12-21 11:19:25
694
原创 Airflow教程一:核心概念
以下是一个基础流水线定义的示例。如果这看起来有些复杂,请不要担心,下文会提供逐行解释。源代码]# DAG 对象;我们需要它来实例化一个 DAG# 操作符;我们需要它来执行操作!with DAG(# 这些参数将传递给每个操作符# 您可以在操作符初始化时针对每个任务覆盖它们# 'on_failure_callback': some_function, # 或函数列表# 'on_success_callback': some_other_function, # 或函数列表。
2025-12-21 11:17:47
777
原创 快速部署 Apache Airflow 2.4.3
通过以上步骤,你已经在~/airflow目录下成功部署了一个功能完整的 Airflow 2.8.4 环境,这个环境非常适合学习和实验经典 Airflow 的工作流管理、任务调度和监控功能。当你掌握了这些基础知识后,迁移到更新版本的 Airflow 也会更加容易。祝你学习愉快!
2025-12-21 11:07:44
859
原创 告别烦人“嘟”声:解决笔记本多键同时按压的报警音
我最终是通过方法一(禁用Beep服务)解决了问题。这个方法一劳永逸,而且不影响其他系统声音。如果你尝试一种方法后问题依旧,可以继续尝试其他方法,因为不同品牌和系统的设置可能有所差异。
2025-10-06 18:23:05
1326
原创 熵、似然与交叉熵
惩罚“自信的错误预测”:预测概率0.01时真实发生 → 巨大损失奖励“谨慎的正确预测”:预测概率0.8时真实发生 → 适度奖励。
2025-08-10 22:48:34
299
原创 概率论入门教程
掌握随机现象背后的数学规律,解锁数据分析与决策的核心工具概率论是研究“不确定性”的数学分支,它告诉我们,虽然单个随机事件的结果无法预测,但大量重复时,会呈现出稳定的、可量化的模式。从天气预报到金融风险评估,从医疗诊断到搜索引擎算法,概率论无处不在。当我们使用导航系统避开拥堵、接收个性化推荐或评估投资风险时,背后都有概率论的力量在支撑。本文将系统介绍概率论的核心概念,通过直观的韦恩图解释关键公式,并展示Python中的实际应用。
2025-08-06 00:56:32
807
原创 微积分入门教程
导数描述了函数在某一点的瞬时变化率。从几何角度看,它代表了函数曲线在该点的切线斜率。对于函数fxf(x)fx,在点xxxf′xlimh→0fxh−fxhf′xh→0limhfxh−fx这个定义捕捉了当hhh趋近于0时,函数变化的极限行为。# 定义函数 f(x) = x^2def f(x):# 数值计算导数# 在x=1处计算导数# 可视化'r--', label=f'切线: 斜率 =
2025-08-06 00:12:45
917
原创 线性代数入门教程
转置性质ATTAATTAABTATBTABTATBT矩阵运算规则矩阵乘法不满足交换律AB≠BAAB ≠ BAABBAABCABCABCABCABCABACABCABAC特殊矩阵AATA = A^TAATAATIAA^T = IAATI范数应用L2范数用于计算欧氏距离L1范数对异常值更鲁棒Frobenius范数衡量矩阵大小。
2025-08-05 23:44:49
623
原创 从“习”字出发:解锁学习之道的神奇钥匙
当“学习-预习-练习-复习-自习”形成闭环,便构筑了一个自我强化的成长系统“习”字词语所编织的,远非琐碎的学习技巧,而是一套精妙的人脑升级系统。它强调行动与反思的结合、输入与输出的循环、外驱向内驱的转化。当“习”成为生命的节奏,学习便不再是被动的任务,而成为一场主动的自我进化。“习以为常”的境界并非遥不可及。从今日起,珍视每一个“习”字背后的力量,让“学习”启智、“预习”探路、“练习”铸技、“复习”固本、“自习”修心。成长的大门,始终向善“习”者敞开。
2025-08-04 00:34:34
201
禅与摩托车维修艺术
2018-05-28
人件集:人性化的软件开发
2018-05-28
深入浅出面向对象分析与设计
2018-01-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅