暂无个人介绍
SPL 重构关联计算,区分外键与主键关联,通过序号化、预加载和预关联实现高效运算。相比 SQL 笛卡尔积式 JOIN,SPL 利用关联本质优化存储与计算,显著提升性能,如案例中查询提速数十倍。
不同数据库的 SQL 语法存在差异,尤其是函数写法不同,导致 SQL 移植困难。SPL 提供 sqltranslate 函数,可将标准 SQL 转换为特定数据库语法,实现 SQL 语句在不同数据库间的无缝迁移,支持多种数据库函数映射与自定义扩展。
本案例涉及车辆、交通、公民系统多源数据混合计算,重点演示SPL对不同表关系(维表关联、主子表关联)的高效处理。通过区分关联类型,SPL可自动选择最优算法,提升计算效率,适用于大规模数据分析场景。
多源混合计算是数据分析的常见需求,但传统SQL逻辑数据仓库能力有限且体系沉重,难以满足轻量场景需求。SPL(Structured Process Language)以其丰富的数据源支持和简洁语法,为多源混算提供了高效解决方案。SPL将各类数据源统一为序表或游标,支持同构与异构数据混合计算,可嵌入应用中使用。它不仅兼容SQL,还支持CSV、Excel、JSON、MongoDB、Kafka等多类型数据源,并通过游标机制处理大数据计算。课程提供免费学习资源,助您快速掌握多源融合计算技能,实现跨库/文件/API/NoSQL的轻松混算。
数据库和文件系统各有优劣:数据库读写性能较低、结构 rigid,但具备计算能力和数据一致性保障;文件系统灵活易管理、读写高效,但缺乏计算能力且无法保证一致性。针对仅需高效存储与灵活管理的场景,文件系统更优,但其计算短板可通过开源工具 SPL(Structured Process Language)弥补。SPL 提供独立计算语法及高性能文件格式(如集文件、组表),支持复杂计算与多源混合查询,甚至可替代数据仓库。此外,SPL 易集成、支持热切换,大幅提升开发运维效率,是后数据库时代文件存储的理想补充方案。
传统交易型数据库在分析计算中常遇性能瓶颈,将数据迁至OLAP数据仓库虽可缓解,但成本高、架构复杂。SPL通过轻量级列存文件存储历史数据,提供强大计算能力,大幅简化架构并提升性能。它优化了列式存储、数据压缩与多线程并行处理,在常规及复杂计算场景中均表现优异,甚至单机性能超越集群。实际案例中,SPL在250亿行数据的时空碰撞问题上,仅用6分钟完成ClickHouse集群30分钟的任务。
esProc SPL 处理多层 JSON 数据比 DuckDB 更便捷,尤其在保留 JSON 层次与复杂计算时优势明显。DuckDB 虽能通过 `read_json_auto()` 将 JSON 解析为表格结构,但面对深层次或复杂运算时,SQL 需频繁使用 UNNEST、子查询等结构,逻辑易变得繁琐。而 SPL 以集合运算方式直接处理子表,代码更简洁直观,无需复杂关联或 Lambda 语法,同时保持 JSON 原始结构。esProc SPL 开源免费,适合复杂 JSON 场景,欢迎至乾学院探索!
跨库计算是数据分析中的常见难题,尤其涉及多数据库系统时,表间 JOIN 操作复杂度显著提升。esProc 提供了一种高效解决方案,能够简化跨库 JOIN 的实现。例如,在车辆管理、交管和公民信息系统中,通过 esProc 可轻松完成如下任务:按城市统计有车公民事件数量、找出近一年获表彰的车主信息,以及按年份和品牌统计车辆违章次数。esProc 支持不同关联场景(如维表关联与主子表关联)的优化算法,如内存索引、游标处理和有序归并,从而大幅提升编码和运算效率。无论是同构还是异构数据源,esProc 均能灵活应对,为复杂数据分析提供强大支持。
当数据库查询因数据量大或繁忙变慢时,可借助 esProc 将数据导出为文件进行计算,大幅提升性能。以 MySQL 的 3000 万行订单数据为例,两个典型查询分别耗时 17.69s 和 63.22s。使用 esProc 转储为二进制行存文件 (btx) 或列存文件 (ctx),结合游标过滤与并行计算,性能显著提升。例如,ctx 并行计算将原查询时间缩短至 0.566s,TopN 运算提速达 30 倍。esProc 的简洁语法和高效文件格式,特别适合历史数据的复杂分析场景。
esProc 是一款强大的数据处理工具,可简化 Java 处理 Restful 接口返回的复杂多层 JSON 数据的难题。通过 esProc,不仅能轻松访问和解析 Restful 数据,还能高效完成复杂计算任务,并可无缝嵌入 Java 应用中作为计算引擎使用。例如,筛选特定分类订单或计算金额,esProc 的脚本简洁直观,远优于传统 SQL 或纯 Java 实现。此外,esProc 支持安全认证(如 Cookie 和 Token)及 JDBC 集成,为开发者提供灵活高效的解决方案。
在现代商业中,数据分析至关重要,但传统BI工具和编程语言如Python、SQL等各有局限。Excel虽交互性强,但面对复杂计算和大数据时力不从心。esProc Desktop作为后Excel时代的数据分析神器,采用SPL语言,具备强大的表格计算能力和天然的大数据支持,可显著降低复杂计算难度。其强交互性、简短代码和内嵌Excel插件功能,让业务人员轻松完成多步骤交互式计算,是理想的数据分析工具。现提供免费使用及丰富学习资源。
DuckDB 和 esProc SPL 均支持多数据源处理,但在功能和灵活性上存在差异。DuckDB 支持常见文件格式(如 CSV、Parquet)、云存储及部分关系型数据库,依赖专用连接器,扩展性有限;esProc 数据源支持更广泛,涵盖多种本地文件、数据库(关系型与 NoSQL)、云存储及远程数据源,使用 Native 接口封装,扩展简便,适合多数据源混合计算。 在数据处理方面,DuckDB 对 CSV 和 Parquet 文件支持成熟,复杂计算需借助 Python,存在体系割裂;esProc 提供 双语法,尤其 SPL 在复杂计算和 JSON 多层结构处理上表现更直观高效。
SQL 只提供了最基础的聚合运算,稍复杂一些的任务都会非常困难;Python 要好很多,有更丰富的概念和运算,能够完成更复杂的计算任务,但是概念体系比较杂乱,语法风格在不同情况下不一致,难学难记,代码也较为繁琐。SPL 概念清晰,语法风格一致,可以写出最简洁易懂的代码。
分组是结构化数据计算的常见操作,SQL 和 Python 均支持分组聚合,但功能较为有限。相比之下,esProc SPL 提供了更强大的分组运算能力,尤其在处理分组子集和有序分组时表现出色。例如,SPL 可轻松实现复杂场景如筛选人数大于10的部门员工、计算股票最长连涨天数等。SPL 支持真正的分组子集概念及连续操作,代码简洁易懂,远超 SQL 和 Python。此外,SPL 还提供对位分组、枚举分组等多种独特方法,堪称史上最强。SPL 是开源免费的,欢迎前往乾学院了解更多。[源码地址](https://github.com/SPLWare/esProc)
SPL(Structured Process Language)是一款结合了强大计算能力和灵活交互性的数据分析工具,特别适合探索式数据分析。它不仅支持分步执行和实时查看每步结果,还提供了丰富的表格数据计算类库,简化复杂运算。与Excel相比,SPL在处理复杂逻辑时更加简洁高效;相较于SQL和Python,SPL具备更好的交互性和更直观的操作体验。通过SPL的XLL插件,用户可以在Excel环境中直接使用SPL的强大功能,充分发挥两者优势。SPL开源免费,是探索式数据分析的理想选择。
SQL 在简单数据分析任务中表现良好,但面对复杂需求时显得力不从心。例如,统计新用户第二天的留存率或连续活跃用户的计算,SQL 需要嵌套子查询和复杂关联,代码冗长难懂。Python 虽更灵活,但仍需变通思路,复杂度较高。相比之下,SPL(Structured Process Language)语法简洁、支持有序计算和分组子集保留,具备强大的交互性和调试功能,适合处理复杂的深度数据分析任务。SPL 已开源免费,是数据分析师的更好选择。
关系数据库和SQL在企业级应用中面临诸多挑战,如复杂SQL难以移植、数据库负担重、应用间强耦合等。Python虽是替代选择,但在大数据运算和版本管理方面存在不足。SPL(esProc Structured Programming Language)作为开源语言,专门针对结构化数据计算,解决了Python的这些硬伤。它提供高效的大数据运算能力、并行处理、高性能文件存储格式(如btx、ctx),以及一致的版本管理,确保企业级应用的稳定性和高性能。此外,SPL与Java无缝集成,适合现代J2EE体系应用,简化开发并提升性能。
流数据源的动态无界特性使得传统数据库技术难以直接处理,而Heron、Samza、Storm、Spark、Flink等计算框架在流计算领域取得了先发优势。然而,这些框架往往侧重于访问能力,计算能力不足,尤其在高级计算如流批混算、复杂计算和高性能计算方面表现欠佳。esProc SPL作为基于JVM的轻量级开源计算类库,专注于提升流计算的计算能力,支持丰富的流数据访问、灵活的集成接口和高效的内外存存储格式,具备强大的高级计算功能,能够简化业务逻辑开发并适应多样的应用场景。SPL通过专业的计算语言和结构化数据处理能力,为流计算提供了更优的解决方案。
在数据分析领域,Excel 和 BI 工具适合处理简单任务,但面对复杂分析(如跨行数据、滑动窗口等)时显得力不从心。编程语言虽有强计算能力,但交互性差,难以实时反馈结果。SPL(Structured Process Language)则结合了两者的优点,采用网格式编程,支持实时查看中间结果,并具备强大的有序和集合运算能力,使复杂任务变得简单直观。SPL 让数据分析师既能享受 Excel 的交互性,又能利用编程的强大计算能力,解决了强计算与交互性的两难问题。
TP 库与 AP 库的结合虽为业界通识,但在实际操作中面临诸多挑战。引入 AP 库不仅增加成本和运维复杂度,还可能导致 T+0 问题和迁移风险。esProc SPL 提供了一种轻量级、灵活的解决方案,作为专业的计算引擎,它无需数据库的复杂管理,支持高效计算和跨源混合计算,尤其在处理复杂任务时表现优异。SPL 语言简化了开发流程,提高了调试效率,且开源免费,是值得考虑的替代方案。
本文探讨了代码性能优化的重要性及实现方法。通过对比SQL与SPL(esProc Structured Process Language)在处理大数据查询时的效率差异,指出SQL在复杂查询中存在性能瓶颈,如全排序操作导致的低效问题。而SPL凭借其集合化和离散性特性,能够以更简洁的语法实现高效的算法设计,显著提升运行速度。例如,从1亿条数据中取前10名或进行分组TopN计算,SPL不仅代码量大幅减少,还能避免不必要的排序操作,实测显示其执行速度远超SQL。此外,SPL还支持复杂的漏斗分析等场景,进一步证明其在高性能计算领域的优势。SPL现已开源免费,值得开发者关注。
传统数据仓库基于封闭的数据库体系,继承了元数据管理和数据约束特性,导致其在处理多样化、实时性数据时面临诸多挑战。封闭性使得数据必须预先加载到数据库中才能进行计算,增加了ETL复杂性和延迟,难以满足现代应用对实时数据和跨源计算的需求。此外,封闭性还限制了数据湖的建设,导致中间表累积、资源浪费和运维困难等问题。 相比之下,基于文件系统的开放数据仓库(如esProc SPL)通过去除这些限制,提供了更高的灵活性和效率。文件存储成本低、管理方便,支持存算分离和跨源计算,适合处理大规模、多样化的数据源。 SPL不仅计算能力强,还能实现高效的文件存储和独创的高性能算法,大幅提升了数据分析的速度和实时性。
从一体机、超融合到云计算、HTAP,技术不断演进,旨在简化和提高效率。湖仓一体(Lakehouse)是当前热门趋势,旨在将数据湖和数据仓库融合,发挥两者优势。数据湖侧重存储原始数据,数据仓库则擅长结构化数据计算。然而,现有方案多为数据湖与数据仓库的松耦合,未能真正实现“既存又算”。开源集算器SPL通过开放计算引擎,直接处理数据湖中的原始数据,支持多数据源混合计算,提供高性能文件存储,实现了真正的湖仓一体。
数据分析师常需处理各种数据操作,如过滤、分组、汇总等,SQL 在这些基本需求上表现得心应手。然而,面对本地文件数据或更复杂需求时,SQL 的局限性显现。SPL(Structured Process Language)则提供了更灵活的解决方案,无需数据库环境,直接从文件计算,代码简洁易懂,调试工具强大,极大提升了数据分析的效率和交互性。
ORM技术如Hibernate、Mybatis和JOOQ简化了Java开发中的数据库操作,但它们在处理复杂计算时表现不佳。esProc SPL是一种基于Java的开源工具,通过提供一种新的脚本语言SPL,弥补了Java在处理复杂数据计算上的不足。SPL不仅支持丰富的数据计算函数,还能无缝集成到Java应用中,实现更简洁、高效的数据库操作和业务逻辑处理。此外,SPL支持多种数据源,提供强大的调试工具,适合频繁变化的业务需求。
随着数据量的增长和业务复杂度的提升,数据仓库性能问题日益凸显,如查询慢、跑批不完等。传统解决方案如集群、预计算和优化引擎虽有一定效果,但成本高、灵活性差或性能提升有限。esProc SPL 提供了一种新的解决思路,通过非 SQL 的计算体系,结合高性能算法和优化的数据存储,实现更高效的数据处理,尤其适用于复杂计算场景。
大数据产品常宣称“万亿秒查”,即能在万亿行数据中秒级返回查询结果。这并非全遍历,而是通过建立索引实现高效定点查找,对数级别复杂度使得现代计算机轻松应对。但对于需遍历的运算,如列合计,秒查在万亿行数据上难以实现,但在TB级数据上仍有可能。此外,与Oracle等传统数据库相比,现代AP数据库因列式存储、集群及内存优势,实现N倍速度提升,并非夸大。真正考验大数据技术的是能否提供独特算法降低计算量,而非单纯数据量与速度的宣传。
现代大数据应用架构中,数据中心作为核心,连接数据源与应用,承担着数据处理与服务的重要角色。然而,随着数据量的激增,数据中心面临运维复杂、体系封闭及应用间耦合性高等挑战。为缓解这些问题,一种轻量级的解决方案——esProc SPL应运而生。esProc SPL通过集成性、开放性、高性能、数据路由和敏捷性等特性,有效解决了现有架构的不足,实现了灵活高效的数据处理,特别适用于应用端的前置计算,降低了整体成本和复杂度。
SQLite 是一款轻量级数据库,适合小微型应用程序的数据处理和计算需求,但面对复杂场景如多数据源支持、复杂计算和流程处理时存在局限。esProc SPL 作为 Java 下的数据处理引擎,不仅具备 SQLite 的优势,还克服了其不足,支持多种数据源、强大的计算能力和流程处理,更适合复杂应用场景。
SQL 和 Python 在数据科学领域虽广泛使用,但它们各自存在不少问题,如 SQL 代码复杂难写、调试困难、性能低下且封闭性高,而 Python 在复杂计算、调试及大数据处理方面同样不尽人意。这些问题严重消耗了数据科学家的时间和精力。esProc SPL 作为一种专为结构化数据处理设计的工具,以其简洁易懂的语法、强大的调试功能、高效的大数据处理能力和开放性,有效解决了上述问题,帮助数据科学家提高工作效率,更好地专注于业务分析。SPL 已经开源,可免费下载使用。
在大数据领域,尽管非结构化数据占据了大数据平台80%以上的存储空间,结构化数据分析依然是核心任务。SQL因其广泛的应用基础和易于上手的特点成为大数据处理的主要语言,各大厂商纷纷支持SQL以提高市场竞争力。然而,SQL在处理复杂计算时表现出的性能和开发效率低下问题日益凸显,如难以充分利用现代硬件能力、复杂SQL优化困难等。为了解决这些问题,出现了像SPL这样的开源计算引擎,它通过提供更高效的开发体验和计算性能,以及对多种数据源的支持,为大数据处理带来了新的解决方案。
本文探讨了SQL在实际应用中的复杂性和难度,指出教科书中的SQL例句虽然简单,但现实中的SQL查询往往长达数千行,涉及多层嵌套,对程序员构成挑战。文章分析了SQL的两个主要缺陷:集合化不彻底和缺乏有序支持,并通过具体示例展示了这些问题如何影响SQL的编写。最后,文章推荐使用esProc SPL,一种增强的编程语言,能够更自然地处理集合和有序数据,简化复杂查询的编写。
本文探讨了云计算环境下“算力无限”的误区,指出即使云上硬件资源看似无限,但由于网络延迟、算法模型限制及成本等因素,实际运算效率未必能线性扩展。文章强调了提高单机运算效率的重要性,推荐使用SPL等工具优化算法,以实现更高性能。
大数据时代,分布式数仓如MPP成为热门技术,但其高昂的成本让人望而却步。对于多数任务,数据量并未达到PB级,单体数据库即可胜任。然而,由于SQL语法的局限性和计算任务的复杂性,分布式解决方案显得更为必要。esProc SPL作为一种开源轻量级计算引擎,通过高效的算法和存储机制,实现了单机性能超越集群的效果,为低成本、高效能的数据处理提供了新选择。
esProc 是一种非 SQL 型数据仓库,采用 SPL 作为查询语言,旨在解决 SQL 在复杂计算、开放性和性能等方面的局限。SPL 支持过程计算、有序运算及丰富的数据类型,能够直接处理多样数据源,无需数据先入库。此外,esProc 通过文件存储和高性能算法优化,实现了计算与存储的解绑,降低了运维成本,提升了计算性能。
SQLite 是轻量级数据库,适用于小微型应用,但其对外部数据源支持较弱、无存储过程等问题影响了开发效率。esProc SPL 是一个纯 Java 开发的免费开源工具,支持标准 JDBC 接口,提供丰富的数据源访问、强大的流程控制和高效的数据处理能力,尤其适合 Java 和安卓开发。SPL 代码简洁易懂,支持热切换,可大幅提高开发效率。
SQL 是大数据计算中最常用的工具,但在实际应用中,SQL 经常跑得很慢,浪费大量硬件资源。例如,某银行的反洗钱计算在 11 节点的 Vertica 集群上跑了 1.5 小时,而用 SPL 重写后,单机只需 26 秒。类似地,电商漏斗运算和时空碰撞任务在使用 SPL 后,性能也大幅提升。这是因为 SQL 无法写出低复杂度的算法,而 SPL 提供了更强大的数据类型和基础运算,能够实现高效计算。
SPL(Structured Process Language)是一种专为处理结构化数据设计的开源编程语言,其独特之处在于代码写在格子里,而非传统的文本形式。SPL 的格子代码不仅整齐直观,还支持直接使用格子名作为变量名,简化了变量管理。此外,SPL 引入了函数选项和层次参数,使代码更加简洁高效。相比 Java、SQL 和 Python,SPL 在处理复杂数据计算时表现出色,能够显著减少代码量,提高开发效率和调试便利性。
数据分析编程用什么,SQL、python or SPL?话不多说,直接上代码,对比明显,明眼人一看就明了:本案例涵盖五个数据分析任务:1) 计算用户会话次数;2) 球员连续得分分析;3) 连续三天活跃用户数统计;4) 新用户次日留存率计算;5) 股价涨跌幅分析。每个任务基于相应数据表进行处理和计算。
大型数据库经过多年运行常积累数以万计的数据表,其中很多是中间表,占用大量资源,导致数据库膨胀。这些中间表大多为数据呈现服务,因前端报表频繁修改而不断增加。SPL 通过独立计算引擎,将中间数据移至文件系统,减少数据库负担,提高性能,优化资源利用。
业务系统产生的明细数据需经加工处理以支持企业经营,此过程称作“跑批”,常在夜间进行以免影响生产系统。跑批任务涉及大量数据及复杂计算,导致耗时较长。开源计算引擎SPL可直接基于文件系统计算,提供更优算法与存储机制,显著提升跑批效率。例如,L银行贷款协议跑批任务从2小时缩短至10分钟,性能提高12倍;P保险公司车险业务的历史保单关联任务从近2小时缩短至17分钟,速度提升近7倍;T银行贷款跑批任务提速204倍。
我们通过使用开源 SPL 重写了多个金融行业的 SQL 任务,实现了显著的性能提升,如保险公司团保明细单查询提速 2000+ 倍、银行 POS 机交易报表提速 30+ 倍等。这些优化的核心在于使用了更低复杂度的算法,而非依赖硬件加速。SPL 基于离散数据集理论,提供了丰富的高性能算法,使得复杂任务的优化成为可能。更多案例和详细技术解析可参见乾学院的相关课程和图书。
应用计算困境:Java 作为主流开发语言,在数据处理方面存在复杂度高的问题,而 SQL 虽然简洁但受限于数据库架构。SPL(Structured Process Language)是一种纯 Java 开发的数据处理语言,结合了 Java 的架构灵活性和 SQL 的简洁性。SPL 提供简洁的语法、完善的计算能力、高效的 IDE、大数据支持、与 Java 应用无缝集成以及开放性和热切换特性,能够大幅提升开发效率和性能。
基于对象-事件模式的数据计算是商业中最常见的数据分析任务之一。对象如用户、账号、商品等,通过唯一ID记录其相关事件,如操作日志、交易记录等。这种模式下的统计任务包括无序计算(如交易次数、通话时长)和有序计算(如漏斗分析、连续交易检测)。尽管SQL在处理无序计算时表现尚可,但在有序计算中却显得力不从心,主要原因是其对跨行记录运算的支持较弱,且大表JOIN和大结果集GROUP BY的性能较差。相比之下,SPL语言通过强化离散性和有序集合的支持,能够高效地处理这类计算任务,避免了大表JOIN和复杂的GROUP BY操作,从而显著提升了计算效率。
W银行指标查询系统用于计算和展示各类汇总指标,支持银行经营决策。因数据量庞大,系统采用预计算方式,但随着指标数量激增,预计算方式逐渐成为瓶颈。文章详细介绍了系统面临的挑战及优化方案,包括列式存储、有序归并、多线程计算等技术,最终实现了从明细数据实时计算指标的目标,显著提升了系统性能。
OLAP(在线分析处理)最初指代人员对数据进行交互式分析操作,但如今其概念被BI软件狭义化为多维分析。真正的在线分析应包括业务人员基于经验做出猜测并验证,从历史数据中寻找规律。多维分析虽能提供有用信息,但难以完成复杂计算。SPL(结构化查询语言的一种变体)因其强大的数据处理能力和易管理性,成为业务人员和开发人员进行复杂数据分析的理想工具。
A电商公司常用漏斗转化率分析来统计用户购物行为。此过程需处理大量用户会话数据,传统SQL实现复杂低效。文中提供了一种基于SPL的专业数据计算引擎解决方案,通过预先排序数据和有序归并算法,显著提升了计算性能,使14天跨度3步漏斗分析在10秒内完成,远超预期。该方法不仅代码简洁,易于扩展,还大幅降低了内存消耗,适合处理大规模数据集。
SPL(Structured Process Language)是一款开源软件,允许用户直接对CSV、XLS等文件进行SQL查询,无需将数据导入数据库。它提供了标准的JDBC驱动,支持复杂的SQL操作,如JOIN、子查询和WITH语句,还能处理非标准格式的文件和JSON数据。SPL不仅简化了数据查询,还提供了强大的计算能力和友好的IDE,适用于多种数据源的混合计算。
基于对象-事件模式的数据计算是商业中最常见的数据分析任务之一。这种模式涉及对象(如用户、账户、商品等)及其相关的事件记录,通过这些事件数据可以进行各种统计分析,如漏斗分析、交易次数统计等。然而,SQL 在处理这类任务时表现不佳,特别是在有序计算方面。SPL 作为一种强化离散性和有序集合的语言,能够高效地处理这类计算,避免了大表 JOIN 和大结果集 GROUP BY 的性能瓶颈。通过按 ID 排序和分步计算,SPL 能够显著提高计算效率,并支持实时数据处理。
本文探讨了1TB数据量的实际意义,通过对比日常业务量和数据库处理能力,揭示了1TB数据的庞大。文中指出,虽然一些机构拥有PB级别的数据,但这更多是存储需求而非计算需求。文章最后强调,优化TB级数据处理效率,如将几小时的处理时间缩短至几分钟,对于大多数应用场景来说更为实际和重要。
发表了文章
2025-11-03
发表了文章
2025-10-30
发表了文章
2025-10-20
发表了文章
2025-10-11
发表了文章
2025-09-23
发表了文章
2025-09-05
发表了文章
2025-08-20
发表了文章
2025-08-14
发表了文章
2025-08-12
发表了文章
2025-08-07
发表了文章
2025-08-05
发表了文章
2025-07-31
发表了文章
2025-07-17
发表了文章
2025-07-15
发表了文章
2025-07-11
发表了文章
2025-06-25
发表了文章
2025-06-19
发表了文章
2025-06-16
发表了文章
2025-06-06
发表了文章
2025-06-06