自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

LXP

손……

  • 博客(132)
  • 资源 (23)
  • 收藏
  • 关注

原创 问题:增量关联(实时同步新数据) 这个场景中,如果hudi_pay 变更了一条数据,hudi_order_pay_join 结果的数据会跟着变化吗

在 Hudi 增量关联场景中,hudi_pay的变更会通过 “增量捕获→关联重算→UPSERT 覆盖” 的逻辑,自动同步到结果表,核心是确保源表、关联作业、结果表的配置一致且正确。该机制完全满足 “实时同步新数据 + 变更联动” 的业务需求,与 Paimon 的变更同步逻辑异曲同工,仅在配置细节上有差异。

2025-12-03 17:45:42 993

原创 Hudi 能否实现 Paimon 同款流 - 流增量关联?结论 + 实操方案

Hudi能够实现CDC流数据的增量关联查询,其核心机制基于增量拉取(IncrementalPull)和CDC表类型。与Paimon相比,Hudi通过UPSERT操作和MERGE_ON_READ表类型实现binlog的更新/删除处理,支持全量初始化+增量同步模式,并能与Flink、Doris无缝集成。Hudi依赖BloomFilter/GlobalIndex进行高效关联,但性能略逊于Paimon的哈希索引优化。方案选择上,Hudi更适合Hadoop生态和多引擎兼容场景,而Paimon在极简配置和关联性能上更具

2025-12-03 17:44:27 547

原创 Paimon 流 - 流增量关联(CDC 模式)具体实现方案

本文介绍了一种基于Paimon实现双流实时关联的技术方案。通过Debezium捕获MySQL的订单和支付表binlog,写入Kafka后同步到Paimon表(CDC模式),利用Flink的批查询和流查询分别实现全量历史关联和实时增量关联。方案支持自动处理数据变更(insert/update/delete),通过主键索引优化关联性能,并将结果持久化供Doris等下游直接查询。关键点包括:CDC模式配置、批流结合关联策略、数据一致性保障机制,以及分区、索引等优化手段。该方案解决了传统流式关联的状态膨胀问题,支持

2025-12-03 17:32:37 784

原创 数据领域数据资产目录划分

金融行业数据资产双分类体系设计摘要:该体系采用业务线/产品线(互斥)和场景分类(非互斥)双维度管理。业务线分类确保资产唯一归属(如信用卡、房贷等业务线独立管理),场景分类支持跨业务资产复用(如获客、风控等场景)。资产通过唯一编码关联两套体系,业务线端维护主数据,场景端自动同步更新。查询时可分别按业务归属或场景关联查看,并标注来源关系。该设计既满足业务线独立管理需求,又实现跨场景资产共享,同时保证数据一致性。

2025-11-27 14:12:45 517

原创 doris导入数据的几种方式

Doris数据导入方式及代码示例摘要 Doris提供五种核心数据导入方式: BrokerLoad:批量导入HDFS/S3大文件(GB/TB级),支持CSV/Parquet/ORC格式 StreamLoad:HTTP实时推送小批量数据(MB级),同步返回结果 RoutineLoad:持续订阅Kafka流数据,实时入库 InsertInto:单条/小批量插入,适合补数据或测试 SparkLoad:TB级大数据导入,支持Spark预处理 代码示例涵盖各种场景,包括HDFS/S3批量导入、Kafka实时消费、HTT

2025-11-25 14:00:21 856

原创 大模型框架选型:LangChain 与 LlamaIndex、Haystack 的核心差异对比

摘要:LangChain、LlamaIndex和Haystack是三大LLM框架,各有侧重。LangChain以灵活性和生态兼容性见长,适合复杂代理工具调用;LlamaIndex专注于RAG场景,文档解析与检索优化能力突出;Haystack则强调企业级部署,具备完善的监控和权限控制。选型需根据场景需求:LangChain适用于多工具协同任务,LlamaIndex适合文档问答,Haystack则适配生产级企业应用。

2025-10-28 17:11:34 349

原创 spark hive presto doris 对substr函数的差异

摘要:Hive、Spark、Presto(Trino)和Doris的substr函数在字符串截取时存在关键差异:1)起始索引规则不同(Hive/Presto/Doris为1-based,Spark的substr为0-based);2)Spark提供substring函数保持与Hive兼容;3)负数索引均支持从末尾计数。建议跨系统开发时优先使用substring函数确保一致性,特别注意Spark特有的0-based索引规则,并对边界条件进行单独测试。

2025-09-16 13:21:31 785

原创 doris三种核心数据模型配置

Doris提供三种核心数据模型:DUPLICATEKEY存储原始明细数据,允许重复键;AGGREGATEKEY通过预计算自动聚合数据,适合统计分析;UNIQUEKEY保证键唯一性并支持数据更新。三者的主要区别在于键的唯一性和数据处理方式:DUPLICATEKEY保留所有数据,AGGREGATEKEY按规则聚合,UNIQUEKEY则覆盖旧数据。选择依据业务需求:明细分析用DUPLICATEKEY,统计报表用AGGREGATEKEY,需要更新的业务数据用UNIQUEKEY。合理选择模型能显著提升查询性能。

2025-08-28 13:31:08 1450

原创 流量埋点可执行落地的方案和规范​

摘要: 流量埋点是收集用户行为数据的关键技术,需平衡数据价值与合规要求。方案设计应遵循业务导向、最小必要等原则,选择代码/可视化/全埋点等混合策略。规范包括命名规则、参数设计、技术实现等细则,并建立隐私授权、数据安全等合规保障。团队协作需明确流程,选用合适工具,加强数据治理。未来埋点将向智能化、隐私计算方向发展,企业需持续优化埋点机制以支撑业务增长。

2025-08-05 21:55:14 739

原创 数据建设之明细层指标和汇总层指标结合方式

数据建设中,明细层与汇总层指标的高效结合关键在于平衡灵活性与效率。明细层保留原始数据,支撑灵活分析和异常排查;汇总层预计算高频指标,提升日常监控效率。核心策略包括:明确分层职责(汇总层为"门面",明细层为"底座")、建立双向联动机制、确保计算逻辑一致性。开发方式需根据指标特性选择:高频核心指标采用预计算,探索性指标动态查询,复杂场景可混合使用。通过元数据管理和统一计算逻辑,实现数据关联与准确性,最终达到高效监控与深度分析的无缝衔接。

2025-08-05 13:31:42 942

原创 paimon 类似hudi的compaction过程的对比

Paimon 虽然未直接使用 “Compaction” 名称,但通过机制实现了与 Hudi Compaction 类似的数据合并功能,核心目标均为优化存储结构、提升查询性能和治理小文件问题。两者的差异主要体现在与计算引擎的集成方式和策略配置细节上,Paimon 更侧重于与 Flink 的深度整合,适合流式数据场景下的自动化优化。

2025-07-03 16:26:45 773 1

原创 数据仓库锚点建模方法的前世今生

代表核心业务实体(如。

2025-07-03 13:34:32 1298

原创 数据仓库DataVault建模方法的前世今生

DataVault 建模方法作为企业级数据仓库的核心方法论之一,其发展历程与技术演进深刻反映了数据管理需求的变迁。在 20 世纪 90 年代提出,其灵感源于对传统建模方法的反思18。无论是金融行业的合规需求,还是互联网公司的敏捷迭代,DataVault 始终以。,成为复杂数据环境下的首选方案。的设计哲学,为企业应对数据挑战提供了坚实的方法论支撑。,将方法论从单纯的建模技术扩展为涵盖。,尤其解决企业级数据仓库中。这一设计既保留了范式建模的。,成为首个真正意义上的。,又吸收了维度建模的。

2025-07-03 13:20:55 965

原创 维度建模、范式建模、容器建模、锚点建模等数据仓库建模的优劣势对比和适合的场景分析

起源于北欧的建模方法,以 “锚点”(实体主键)为核心,通过 “链接”(关系)和 “属性”(动态扩展字段)组织数据,支持无限制扩展和全历史追踪。通过明确不同建模方法的核心差异,可根据业务需求(如查询效率、数据一致性、灵活性)和技术架构选择合适的方案,或采用混合建模平衡多方需求。以业务过程为中心,通过 “事实表”(存储量化数据)和 “维度表”(存储描述性属性)构建星型 / 雪花模型,聚焦分析场景的快速查询。一种介于范式建模和维度建模之间的结构化方法,通过。组织数据,强调历史数据存储和可追溯性。

2025-07-03 13:16:56 1086

原创 AI 知识数据库搭建方案:从需求分析到落地实施

1. 明确业务场景与知识需求场景导向客服问答:需聚焦产品知识库、常见问题(FAQ)的快速检索;智能决策:如金融风控,需整合规则库、案例库与实时数据;研发辅助:需存储技术文档、专利知识及代码片段。知识类型梳理结构化数据:数据库表、指标数据;非结构化数据:文档、日志、多媒体文件;半结构化数据:JSON 配置、XML 文档。2. 确定核心技术目标存储规模:预计 TB 级还是 PB 级数据量?是否支持弹性扩展?响应速度:实时检索(毫秒级)还是批量处理(分钟级)?

2025-06-13 09:16:16 1653

原创 对比Lambda架构和Kappa架构的优缺点

随着流处理引擎(如Flink)的成熟,Kappa架构因简洁性逐渐普及,但在海量历史数据处理和强一致性场景下,Lambda仍是更稳妥的选择。未来趋势倾向于结合二者优势的混合方案,或探索。

2025-06-05 15:10:33 1228

原创 Flink SQL 计算实时指标同比的实现方法

核心是通过时间窗口划分周期(如日、月、周),并关联当前周期与去年同期的指标值。(如 2024 年 10 月 1 日 vs 2023 年 10 月 1 日,或 2024 年 Q3 vs 2023 年 Q3)。通过以上方法,Flink SQL 可以高效实现实时指标的同比计算,核心是通过窗口聚合、历史数据存储和维表关联,解决周期对齐和跨时间数据查询的问题。以下以 “每日订单金额同比” 为例,演示 Flink SQL 实现实时同比的完整流程。格式的日期),用于后续关联去年同期数据。减 1 年),计算同比增长率。

2025-05-21 14:24:54 1099

原创 评估数据服务质量的量化指标-互联网大厂(某节)

例如,某房产 APP 通过火山引擎 DataLeap 实现 SLA 延迟从 “13 天” 缩短至 “0 天”,正是基于 “0987” 标准指导1。综上,“0987” 是某节数据驱动战略的核心量化框架,而非单一项目。其通过技术工具、组织协作和文化建设,推动数据建设与业务需求深度融合,实现从数据生产到消费的高效闭环。“某节 数据建设 0987” 中的 “0987” 是某节跳动内部用于评估数据服务质量的量化指标体系。“0987” 既是评估标准,也是数据建设的指导原则。

2025-05-19 15:25:16 408

原创 Hudi、Iceberg 、 Paimon 数据湖选型对比

Hudi、Iceberg 和 Paimon 是当前数据湖领域的三大主流开源框架,均致力于解决数据湖场景下的等核心问题,但设计理念和适用场景存在差异。

2025-05-16 11:14:02 2184

原创 Flink SQL、Hudi 、Doris在数据上的组合应用

Flink 是 Apache 顶级的流批一体化计算引擎,Flink SQL 是其提供的 SQL 接口,支持用 SQL 语法实现实时数据处理(如实时 ETL、实时聚合、实时报表等),并支持流(实时)和批(历史)数据的统一处理。:Hudi(Hadoop Upserts Deletes and Incrementals)是 Apache 顶级项目,专注于解决数据湖(如基于 HDFS、S3 的存储)的。,专注于解决高并发、低延迟的复杂查询需求(如多维聚合、即席查询),适合构建企业级数据分析平台。

2025-05-16 11:08:39 1360

原创 hudi + flinksql 处理 金额汇总的实时场景

Hudi与FlinkSQL结合处理实时金额汇总场景,通过FlinkSQL的声明式流处理简化开发,无需编写复杂Java代码,同时利用Hudi的事务性存储管理明细与聚合数据的实时更新,如处理退单和金额修正。架构设计包括Kafka作为事件流缓冲层,FlinkSQL进行流处理,Hudi存储明细和聚合表,支持下游查询。核心步骤包括定义Kafka源表、去重与过滤、实时金额汇总、写入Hudi聚合表以及执行实时写入。关键技术细节涉及处理退单等更新场景、数据一致性保障、性能优化和明细数据存储。此方案适用于电商GMV监控、用户

2025-05-14 09:33:22 1275

原创 Hive SQL中,使用WITH子句和创建临时表性能对比

新版本(如Hive 3.0+)对CTE优化更好,可能自动物化多次引用的CTE,减少性能差异。Hive优化器可能将CTE内联到主查询中,生成更优的执行计划(如合并操作、减少中间步骤)。对中间结果进行多次转换或需要手动优化执行顺序时,临时表提供更灵活的控制。若同一中间结果被多次使用(如多表JOIN或复杂子查询),临时表可。CTE是逻辑临时结果集,仅在查询生命周期内存在,命令分析两种方式的执行计划,观察是否有冗余操作。的中间结果,避免临时表创建和清理的开销。被多次使用,显式临时表可能更优。-- 显式创建临时表。

2025-02-24 18:26:36 1463

原创 sql实战解析-sum()over(partition by xx order by xx)

3、sum( )over( partition by xx order by xx) 在 sum( )over( order by xx) 基础之上,增加一个分组动作,所有的计算都在分组内生效,即在每个分区内,进行sum( )over( order by xx) 的操作。sum( c )over( partition by a order by b) 按照一定规则汇总c的值,具体规则为以a分组,每组内按照b进行排序,汇总第一行至当前行的c的加和值。1、sum( )over( ) 对所有行进行求和。

2024-10-14 09:46:46 3678 2

转载 数据湖方案对比 -delta、iceberg和hudi

我们把三个产品(其中delta分为databricks的开源版和商业版)总结成如下图:如果用一个比喻来说明delta、iceberg、hudi、hive-acid四者差异的话,可以把四个项目比做建房子。由于开源的delta是databricks闭源delta的一个简化版本,它主要为用户提供一个table format的技术标准,闭源版本的delta基于这个标准实现了诸多优化,这里我们主要用闭源的delta来做对比。

2024-10-10 13:14:19 831

原创 flink-sql写入hudi的行列转换lateral

【代码】flink-sql写入hudi的行列转换lateral。

2024-08-06 18:56:25 578 1

原创 3分钟带你了解:数据仓库能为你做点啥

数据仓库的建设目标,是融合多领域数据,建设企业级标准化、统一、可共享的全、准、快、省、通的全部数据体系,給下游提供稳定数据服务。,指经过一系列的业务逻辑、技术逻辑加工后的,产生的口径统一的公共数据,具备高质量、高时效、一致口径等特性,常用于运营报表、经营分析、财务结算、风控策略等场景;灵活的查询,可以解决用户敏捷、灵活的数据加工需求,大多数的部门用户都可以通过数据查询平台,通过自助查询的方式,解决临时性的数据提取和探查的数据需求。数据一旦确认写入后是不会被取代或删除的,即使数据是错误的亦同。

2023-12-18 17:22:56 1176

转载 git快速入门

一、 版本控制工具1.1. 什么是版本控制系统?版本控制系统(Version Control System):是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。版本控制系统不仅可以应用于软件源代码的文本文件,而且可以对任何类型的文件进行版本控制。常见的版本控制系统有:cvs、svn、git1.2. 为什么要有版本控制系统?在开发过程中,经常需要对一个文件进行修改甚至删除,但是我们又希望能够保存这个文件的历史记录,如果通过备份,那么管理起来会非常的复杂。

2023-08-28 14:25:45 417

原创 hive concat_ws,collect_set的使用

(然而会忽略所有的 null)可以通过变量 group_concat_max_len 设置一个最大的长度。在运行时执行的句法如下: SET [SESSION | GLOBAL] group_concat_max_len = unsigned_integer;如果分组的字符过长,可以对系统参数进行设置:SET @@global.group_concat_max_len=40000;concat_ws(SEPARATOR ,collect_set(column))与group_concat()函数作用相似。

2023-05-15 21:08:35 1148

原创 hdfs文件复制方法

hdfs文件复制,并拷贝修复数据-- 1、复制表结构create table t1 like t2;-- 2、复制文件数据hadoop distcp -update -skipcrccheck -m 300 hdfs://ns1/warehouse/ods.db/t2 hdfs://ns1/warehouse/bkdata.db/t1-- 3、修复表元数据msck repair table t1hdfs 加载数据-- 1、创建新表use db1;create table db1.te

2022-03-15 09:49:53 4681

原创 hive 运行任务报错 Error: Java heap space 解决办法

Error: Java heap space 解决办法使用MR引擎时:set mapreduce.map.memory.mb=12000;set mapreduce.reduce.memory.mb=12000;set mapred.map.child.java.opts=-server -Xmx10000m -Djava.net.preferIPv4Stack=true;set io.sort.mb=100;set mapred.reduce.child.java.opts=-server -

2022-03-15 09:39:53 4207 1

转载 spark 缓存表的使用

spark 几种缓存数据的方法1- 缓存表2-缓存结果查看3-缓存参数设置1- 缓存表1、cache table//缓存全表sqlContext.sql("CACHE TABLE activity")//缓存过滤结果sqlContext.sql("CACHE TABLE activity_cached as select * from activity where ...")CACHE TABLE是即时生效(eager)的,如果你想等到一个action操作再缓存数据可以使用CACHE LA

2021-11-30 09:48:13 4032

原创 spark-sql 和 pyspark的配置

1、1、**执行spark-sql 报错 :sparksql启动报错The specified datastore driver ("com.mysql.jdbc.Driver") was not found in the CLASSPATH**解决方案:spark无法使用mysql的驱动,访问hive的元数据(mysql数据库),所以需要想办法让spark能引用已存在的访问mysql的驱动。针对已经配置完毕的hive,一般的访问mysql的驱动放在hive的lib库之下,比如:/opt/hive/hi

2021-07-22 18:52:57 464 1

原创 maven的安装与配置

1、maven是什么Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。 来自百度百科2、maven安装步骤提前安装jdk, 对应环境 Linux ubuntu 下载软件,对应官网https://maven.apache.org/download.cgi 1、解压 tar xvzf apache-maven-3.6.3-bin.tar.gz2、创建保存的目录 sudo mkdir /opt/maven...

2021-02-02 10:05:58 223

原创 Hive数据类型转换-decimal 变成了string ,科学计数法怎么转换成正确的decimal

1、double , float ,decimal 千万不能转换成string,常常会自动使用科学计数法保存,这种转换Hive基本不支持可逆操作,只能扔人工代码转换。PS:不理解Hive为什么不内置这类函数呢。2、上人工代码:select case--处理非科学计数法表示的字符串when length(regexp_extract('2.0E7','([0-9]+\\.)([0-9]+)(E-*[0-9]+)',2)) = 0then '2.0E7'--处理整数when length(

2020-10-12 09:21:15 7476 1

转载 mysql like escape 通配符语法小记录

MySql的like语句中的通配符:百分号、下划线和escape% :表示任意个或多个字符。可匹配任意类型和长度的字符。Sql代码select * from user where username like '%huxiao'; select * from user where username like 'huxiao%'; select * from use...

2019-11-11 15:45:58 577

原创 mysql 连接报错:Authentication plugin 'caching_sha2_password'cannot be loaded

错误原因:即从mysql5.7版本之后,默认采用了caching_sha2_password验证方式。解决办法:在linux服务器中,开启mysql,并进入连接的数据库执行如下语句,表示采用原来的身份验证机制。mysql>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root账...

2019-06-19 18:41:26 573

转载 SQL :group by all | group by ··· with cube |group by with rollup 的用法

原文出处 :https://blog.youkuaiyun.com/lhy55040817/article/details/80156281. group by allSQL Server联机丛书中是这样描述group by all的:“只有在 SELECT 语句还包括 WHERE 子句时,ALL 关键字才有意义。”也就是,group by all必须和where子句一起使用。我们使用SQ...

2019-05-16 14:18:56 1661

原创 SQL : hive sql 一些小语句记录[删除连续分区 drop partition]

想要除个别字段外的剩余所有字段这是HIVE中查询语句的一个小技巧,一个表有很多字段,我们想要除个别字段外的剩余所有字段,全部列出来不方便且不美观,实际上hive语句可以解决这个问题。选择tableName表中除了name、id、pwd之外的所有字段:set hive.support.quoted.identifiers=None;select `(name|id|pwd)?+.+` ...

2019-04-09 14:33:28 3641

原创 SQL : mysql8.0客户端连接报错:authentication plugin caching_sha2_pa

原因说明:mysql 8.0 默认使用 caching_sha2_password 身份验证机制 —— 从原来的 mysql_native_password 更改为 caching_sha2_password。从 5.7 升级 8.0 版本的不会改变现有用户的身份验证方法,但新用户会默认使用新的 caching_sha2_password 。解决方法:使用cmd命令,通过mysql...

2019-01-15 10:24:17 1056

原创 python操作excel笔记

#coding=utf-8########################################################filename: .py#author:#date:2019-01-08#function:#######################################################import openpyxlimpo...

2019-01-10 16:27:37 335

arm romfs文件系统介绍

arm 的romfs文件系统介绍,让你更加体味romfs文件系统

2013-04-08

Sping+MVC框架搭建

Sping+MVC框架搭建

2017-06-21

基于arm的通用IO接口驱动设计

基于arm的通用IO接口的驱动设计,希望能帮助大家。 声明:本文档是网络上转载他人的,只是感觉有用,特在此分享给大家……

2013-04-08

cc2530 用户指南

关于zigbee的用户指南 主要针对cc2530系列

2014-03-31

sqlite 文件结构

sqlite 文件结构 感觉非常的不错 ……转载的……

2014-04-09

嵌入式Bluetooth协议栈移植

嵌入式蓝牙移植需要的开发包,包括:bluez-libs,bluez-util,dbus,expat,glib,留作备份,欢迎需要的同志下载。

2014-11-12

secureCTR串口助手

secureCRT 串口助手 感觉还行 挺实用的

2013-08-09

apache 远程更改用户密码

apache2 实现远程 更改用户密码 前提:apache支持php页面。。。

2013-08-09

apache远程修改svn用户密码

用php实现apache修改svn用户密码。简单方便,前提是apache配置支持php页面。

2013-08-09

win7 超级终端

win7超级终端 版本1.01 感觉挺实用的。。。

2013-08-09

editplus 代码编辑软件

editplus 代码开发的工具,主要用于代码的开发

2013-08-09

linphone编译-belle-sip-1.3.0.tar.gz

总是找不到belle-sip的包,ubuntu也不能自己安装,就保存下来了,主要用于linhpone的编译

2015-05-14

rar for linux(32位)

rar for linux 32位,

2012-11-21

json-c-0.7.tar.gz

json-c 主要是json数据包,留作备份,欢迎大家下载

2014-11-12

tortoiseSVN-1.8.1

svn 的客户端,主要是为了和中文语言包一起上传,避免语言包不匹配的问题。。

2013-08-05

svn客户端语言包1.8.1的版本

svn客户端的语言包,主要是为了svn客户端中文语言包的匹配问题。

2013-08-05

SVN_windows版本

windows下的subversion服务器、客户端以及中文语言包,版本是1.8.1的,看清版本。 本机是window 7 ,验证没有问题。官网免费下载,但考虑到语言包和客户端的匹配,故上传此资源以方便大家。

2013-08-05

linux socket网络编程

linux socket网络编程 ,介绍网络socket 编程,基于linux平台

2013-04-01

source insight

source insight 编程开发工具 方便开发的代码编辑器

2013-08-09

boa-0.94.13.tar.gz

boa服务器 linux web服务器,留作备份,需要的来下载,

2014-11-12

apache for linux 2.2两个版本

准备了apache 2.2 for linxu 的两个版本,希望能帮到需要的人

2015-01-07

Thinking in C++.pdf

Thinking in C++.pdf 学习c++

2012-03-08

fedora xinetd软件包包

for fedora 10 linux 包包是rpm 的格式,方便使用

2012-11-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除