当前位置: 首页 > news >正文

无锡网站建设设计/刷关键词怎么刷

无锡网站建设设计,刷关键词怎么刷,做炫光素材的网站,怎么把自己做的网站发布出去在企业数字化转型进程中,数据仓库的建设至关重要,而 DWD 层(明细粒度事实层)作为数据仓库的核心支撑层,其搭建质量直接影响企业数据的分析价值与决策效率。本文将结合实际案例与行业经验,详细阐述企业如何从…

在企业数字化转型进程中,数据仓库的建设至关重要,而 DWD 层(明细粒度事实层)作为数据仓库的核心支撑层,其搭建质量直接影响企业数据的分析价值与决策效率。本文将结合实际案例与行业经验,详细阐述企业如何从 0 到 1 搭建高效、可靠的 DWD 层。

1 DWD 层基础架构与核心概念

1.1 DWD 层在数据仓库体系中的定位

DWD 层处于数据仓库 ods - dwd - dws - ads 架构的关键位置,是对原始数据进行深度加工和精细化处理的重要层级。它承接来自 ODS 层的海量、繁杂的业务数据,这些数据可能源自不同的业务系统,如销售系统、财务系统、客户关系管理系统等,格式和语义各异。DWD 层通过一系列数据处理操作,将数据按照业务逻辑进行梳理和组织,转化为以业务过程为核心的明细事实表,为上层的 DWS 层和 ADS 层提供高质量的数据原料,确保数据分析的准确性和深度。

1.2 核心定义与设计原则

DWD 层遵循明细粒度事实层的设计理念,以业务过程为驱动构建事实表,确保每一行数据代表一个不可再分的业务原子事件。例如,在电商业务中,每一笔订单的商品明细、每一次用户的操作记录等都在这一层被精确记录。同时,为提升查询性能和减少数据关联的复杂性,依据企业的实际数据使用场景和分析需求,对重要的维度属性进行适当冗余,形成宽表结构。这种设计在保证数据完整性的同时,能够显著提高数据查询和分析的效率,减少复杂的表连接操作,使数据分析人员能够更便捷地获取所需数据。

2 DWD 层建模的关键步骤与实践要点

2.1 业务流程深度剖析与事实表确定

开展全面的业务调研,深入企业各个业务部门,与业务专家和一线工作人员进行充分沟通,详细了解业务的运作流程、关键环节和数据产生的源头。以制造业企业为例,需梳理从原材料采购、生产计划制定、生产过程执行、产品质量检测到成品销售及售后服务等全流程的数据脉络。

根据业务流程分析结果,识别出核心业务过程,并确定与之对应的事实表。如在销售业务流程中,订单生成、订单支付、订单发货等关键事件分别对应订单事实表、支付事实表和发货事实表。每张事实表应清晰界定其涵盖的业务范围和数据粒度,确保能够准确、完整地反映业务事实,为后续的数据分析提供坚实基础。

2.2 粒度精细声明与维度精准确认

粒度声明是 DWD 层建模的关键环节之一。在确定事实表的粒度时,需明确每一行数据所代表的业务细节程度。以物流运输业务为例,运输事实表的粒度可能细化到每一个包裹在每次运输任务中的详细信息,包括包裹编号、运输起点、运输终点、运输时间、运输费用、运输方式等。这种精细的粒度定义能够满足企业对物流运输过程的精细化分析需求,如分析不同运输路线的效率、不同时间段的运输量等。

维度确认需要从业务流程中提取与事实表相关的关键维度信息。常见的维度包括时间、用户、地点、产品、渠道等。在维度设计过程中,要确保维度的一致性和完整性。例如,对于时间维度,可能需要根据业务分析需求细分到年、月、日、时、分、秒等不同层次;对于用户维度,需整合来自不同数据源的用户信息,如用户基本资料、用户行为数据、用户偏好数据等,构建统一的用户维度表,并建立与事实表的有效关联。同时,要注重维度的可扩展性,以便在业务发展和数据分析需求变化时能够方便地添加新的维度属性。

2.3 事实度量准确界定与计算逻辑明确

事实度量是反映业务绩效和运营状况的关键指标,在 DWD 层建模中需要准确界定。在金融领域的交易事实表中,常见的事实度量包括交易金额、交易数量、手续费等;在电商销售事实表中,有商品销量、销售额、客单价、退货数量等。对于每个事实度量,必须明确其计算逻辑和数据来源,确保数据的准确性和一致性。例如,销售额的计算可能涉及商品单价、销售数量以及可能存在的折扣等因素,需要在数据处理过程中按照统一的计算规则进行计算,并在事实表中准确记录。

3 不同类型事实表的构建策略与案例详解

3.1 事务型事实表

适用场景与业务特性:事务型事实表适用于业务操作具有明确事务边界且数据相对稳定的场景。典型的应用场景包括金融交易、电信通话记录、电商订单处理等。以银行转账业务为例,每一笔转账交易都具有明确的开始和结束状态,一旦转账操作完成并提交,相关数据就成为一个不可更改的事务记录在转账事实表中。这种类型的业务数据通常采用增量同步策略,即只记录新发生的事务数据,确保事实表中的数据始终保持最新状态。

构建实例与技术细节:假设构建一个电商订单支付事务型事实表,源数据存储在 ODS 层的 ods_payment 和 ods_order 表中。首先,根据支付业务需求设计表结构,如下所示:

CREATE EXTERNAL TABLE dwd_fact_payment (  payment_id VARCHAR(50) COMMENT '支付 ID',  order_id VARCHAR(50) COMMENT '订单 ID',  user_id VARCHAR(50) COMMENT '用户 ID',  payment_amount DECIMAL(10, 2) COMMENT '支付金额',  payment_time TIMESTAMP COMMENT '支付时间',  payment_method VARCHAR(20) COMMENT '支付方式',  -- 其他必要字段及注释) PARTITIONED BY (dt VARCHAR(10)) STORED AS PARQUET LOCATION '/warehouse/dwd/payment/';

在数据加载过程中,需要通过关联 ods_payment 和 ods_order 表获取所需字段,并将符合条件的数据插入到支付事实表中。例如:

INSERT OVERWRITE TABLE dwd_fact_payment PARTITION(dt = '2023-10-01')SELECT  p.payment_id,  p.order_id,  o.user_id,  p.payment_amount,  p.payment_time,  p.payment_methodFROM  ods_payment p  JOIN ods_order o ON p.order_id = o.order_idWHERE  p.dt = '2023-10-01';

在此过程中,需要注意关联条件的准确性和数据类型的一致性,确保数据能够正确加载到事实表中。

3.2 周期型快照事实表

适用场景与业务特性:周期型快照事实表常用于记录特定周期内业务状态的数据,如电商每日库存快照、企业每月财务报表数据等。这类数据的特点是关注业务在某个时间点的整体状态,数据会随着时间的推移而发生变化,但在每个周期内会生成一个相对稳定的全量快照。例如,电商平台需要每天记录各个商品的库存数量、库存金额等信息,以便分析库存的动态变化和销售趋势。由于这类数据的时效性较强,通常会采用全量同步策略,并根据业务需求定期清理过期的快照数据,以节省存储资源。

构建实例与技术细节:以电商每日商品库存快照事实表为例,源数据位于 ODS 层的 ods_inventory 表。创建表结构如下:

CREATE EXTERNAL TABLE dwd_fact_inventory_snapshot (  product_id VARCHAR(50) COMMENT '商品 ID',  warehouse_id VARCHAR(50) COMMENT '仓库 ID',  inventory_quantity INT COMMENT '库存数量',  inventory_value DECIMAL(10, 2) COMMENT '库存价值',  snapshot_date DATE COMMENT '快照日期') PARTITIONED BY (dt VARCHAR(10)) STORED AS PARQUET LOCATION '/warehouse/dwd/inventory_snapshot/';

数据加载时,按照日期筛选 ODS 层的全量数据,并插入到库存快照事实表中,如:

INSERT OVERWRITE TABLE dwd_fact_inventory_snapshot PARTITION(dt = '2023-10-01')SELECT  product_id,  warehouse_id,  inventory_quantity,  inventory_value,  CURRENT_DATE() AS snapshot_dateFROM  ods_inventoryWHERE  dt = '2023-10-01';

在实际应用中,还可以根据业务需求对库存数据进行一些预处理和转换,如计算库存周转率、库存预警等指标,并将其添加到事实表中,以丰富数据分析的维度。

3.3 累积型快照事实表

适用场景与业务特性:累积型快照事实表主要用于跟踪具有生命周期且状态随时间动态变化的业务流程,如订单从创建、发货、运输到签收的全过程,或项目从启动、执行到完成的各个阶段跟踪等。这类业务数据需要不断更新以反映业务流程的进展情况,因此采用新增及变化同步策略。例如,在订单处理过程中,随着订单状态的不断变化,累积型快照事实表会记录每个阶段的时间节点和相关信息,以便企业能够全面了解订单的生命周期和处理效率,及时发现潜在的问题和瓶颈。

构建实例与技术细节:以订单全生命周期累积快照事实表为例,源数据分散在 ODS 层的 ods_order、ods_shipment、ods_delivery 等表中。首先创建表结构:

CREATE EXTERNAL TABLE dwd_fact_order_lifecycle (  order_id VARCHAR(50) COMMENT '订单 ID',  user_id VARCHAR(50) COMMENT '用户 ID',  order_create_time TIMESTAMP COMMENT '订单创建时间',  shipment_time TIMESTAMP COMMENT '发货时间',  delivery_time TIMESTAMP COMMENT '送达时间',  order_status VARCHAR(20) COMMENT '订单状态') PARTITIONED BY (dt VARCHAR(10)) STORED AS PARQUET LOCATION '/warehouse/dwd/order_lifecycle/';

在首日数据加载时,通过关联多个源表获取初始数据,并插入到累积快照事实表中:

INSERT OVERWRITE TABLE dwd_fact_order_lifecycle PARTITION(dt = '2023-10-01')SELECT  o.order_id,  o.user_id,  o.order_create_time,  s.shipment_time,  d.delivery_time,  o.order_statusFROM  ods_order o  LEFT JOIN ods_shipment s ON o.order_id = s.order_id  LEFT JOIN ods_delivery d ON o.order_id = d.order_idWHERE  o.dt = '2023-10-01';

在每日数据更新时,需要通过与前一日数据进行全外连接(FULL OUTER JOIN),根据业务规则更新或插入新记录。例如:

SET hive.exec.dynamic.partition.mode = nonstrict;INSERT OVERWRITE TABLE dwd_fact_order_lifecycle PARTITION(dt)SELECT  IF(n.order_id IS NULL, o.order_id, n.order_id),  IF(n.user_id IS NULL, o.user_id, n.user_id),  -- 其他字段类似处理  COALESCE(n.order_create_time, o.order_create_time),  COALESCE(n.shipment_time, o.shipment_time),  COALESCE(n.delivery_time, o.delivery_time),  IF(    n.order_status IS NULL,    o.order_status,    n.order_status  ),  COALESCE(n.dt, o.dt) AS dtFROM  (    SELECT      *    FROM      dwd_fact_order_lifecycle    WHERE      dt IN (        SELECT          DATE_FORMAT(order_create_time, 'yyyy-MM-dd')        FROM          ods_order        WHERE          dt = '2023-10-02'      )  ) o FULL  OUTER JOIN (    SELECT      *    FROM      ods_order    WHERE      dt = '2023-10-02'  ) n ON o.order_id = n.order_id;

在这个过程中,需要特别注意数据的一致性和完整性,确保累积型快照事实表能够准确反映订单的全生命周期状态变化。

4 DWD 层建设的优化策略与优秀实践经验

4.1 数据质量保障体系的构建
a. 数据清洗规则与流程设计
  • 在数据进入 DWD 层之前,建立严格的数据清洗规则和流程至关重要。首先,需要识别和处理数据缺失值。对于关键业务字段的缺失值,可以根据业务逻辑和数据分布情况采用合适的填充方法,如使用默认值、均值、中位数或基于其他相关字段进行估算。例如,在销售数据中,如果某个订单的金额缺失,可以参考同类型商品的平均销售价格或历史订单的价格进行估算。其次,要处理数据异常值。通过设定合理的阈值范围或运用统计方法识别异常数据点,并根据业务实际情况进行修正或删除。例如,在订单数量数据中,如果出现某个订单的商品数量远远超出正常范围,可能需要进一步核实数据的准确性,如有错误则进行纠正。此外,还需要进行数据去重操作,确保数据的唯一性。可以根据数据的主键或唯一标识字段进行查重,并删除重复记录。

  • 数据清洗规则与流程的精细化设计

    • 缺失值处理策略:在数据进入 DWD 层之前,需制定全面且针对性强的缺失值处理策略。对于关键业务字段的缺失值,应根据业务逻辑和数据分布特点采用合适的填充方法。例如,在客户信息表中,如果客户年龄缺失,可参考客户的购买行为数据、会员等级或同类客户的平均年龄进行估算;在订单表中,若订单金额缺失,可结合商品价格表和订单商品明细进行计算补充。同时,对于一些无法准确估算的缺失值,可根据数据的重要性和分析需求,选择标记为缺失或设置默认值,但需确保标记和默认值的设置不会对后续分析产生误导。

    • 异常值识别与修正方法:建立有效的异常值识别机制是确保数据质量的关键环节。通过设定合理的阈值范围、运用统计分析方法(如标准差、箱线图等)或基于业务规则进行判断,识别出数据中的异常值。例如,在销售数据中,如果某一商品的销售价格远远高于同类商品的平均价格或历史价格范围,可能是数据录入错误或特殊促销活动导致,需进一步核实并进行修正。对于确认的异常值,可根据业务实际情况采取不同的处理方法,如修正为合理值、删除异常记录或单独存储并标记以便后续分析。在处理过程中,要充分记录异常值的识别和处理过程,以便追溯和分析数据质量问题的根源。

    • 重复值去重操作要点:数据去重是保证数据唯一性和准确性的重要步骤。在 DWD 层建设中,根据数据的主键或唯一标识字段进行查重操作。例如,在订单事实表中,订单编号通常是唯一标识,可通过对订单编号进行查重,删除重复的订单记录。在去重过程中,要注意数据的完整性和一致性维护,确保去重操作不会误删有效数据。同时,对于可能存在的部分字段重复但整体记录不完全相同的情况,需根据业务规则进行判断和处理,如合并重复记录或选择保留最新或最完整的记录。

  • 数据标准化的关键技术与实现路径

    • 维度数据标准化:维度数据的标准化是确保数据一致性和可比性的基础。对于不同数据源中的时间维度,统一时间格式(如采用 ISO 8601 标准格式:YYYY-MM-DDTHH:MM:SSZ)和时区设置至关重要。例如,在整合来自全球不同地区的销售数据时,需将所有时间数据转换为统一的 UTC 时间,避免因时间格式和时区差异导致的数据分析错误。对于地理区域维度,需建立统一的地理编码标准,将不同的地名、地址等转换为标准的地理编码(如经纬度或行政区域代码),方便进行地理空间分析。在用户维度,统一用户信息的编码规则和分类标准,如用户性别统一用特定代码表示(如 0 表示未知、1 表示男性、2 表示女性),用户职业分类采用行业通用标准等,确保在不同业务场景和数据分析中用户维度数据的一致性和可用性。

    • 度量值标准化:在度量值方面,统一数据的单位和精度是关键。例如,在财务数据中,确保所有金额数据的单位统一为人民币元,并根据业务需求设置合理的精度(如保留两位小数)。对于数量数据,如商品销售量、库存数量等,明确其计数单位(如件、千克、立方米等)并保持一致。在进行数据计算和汇总时,要遵循统一的计算规则和精度要求,避免因单位和精度不一致导致的计算错误和数据分析偏差。

b.数据质量监控与预警机制

建立完善的数据质量监控体系,实时或定期监测数据的质量指标。常见的监控指标包括数据完整性(如特定字段的非空比例)、准确性(如数据是否符合业务规则和逻辑)、一致性(如跨表关联数据的一致性)等。可以利用数据质量管理工具(如 Apache Griffin、Informatica Data Quality 等)实现自动化监控,并设置预警阈值。一旦数据质量指标超出阈值范围,及时触发警报通知相关人员进行处理。同时,要建立数据质量问题的追溯和处理记录机制,以便分析问题的根源和改进数据处理流程。

4.2 性能优化的关键技术与方法

存储格式与压缩算法选择:选择合适的存储格式和压缩算法是提高 DWD 层性能的重要手段之一。Parquet 和 ORC 是两种常用的列式存储格式,它们在大数据场景下具有良好的性能表现。Parquet 格式具有较高的压缩比和查询性能,特别适合分析型查询场景。它能够有效地减少数据存储体积,提高数据读取速度,尤其是在处理大规模数据集时优势明显。ORC 格式则在复杂查询和数据更新方面表现较好,支持更高效的索引和数据压缩。在选择存储格式时,需要根据数据的特点和查询需求进行综合考虑。同时,结合合适的压缩算法可以进一步优化存储性能。例如,对于数据重复率较高的场景,可以选择 Snappy 压缩算法,它能够快速压缩和解压缩数据,减少存储开销;对于对压缩比要求较高的场景,可以考虑 LZO 或 Zstd 压缩算法,它们能够提供更高的压缩比,但可能在压缩和解压缩速度上稍逊一筹。

分区与分桶策略应用:合理运用分区和分桶技术可以显著提升数据的查询和处理效率。分区可以按照时间(如年、月、日)、业务区域、数据类型等维度进行划分。例如,在销售数据中,可以按照销售日期进行分区,这样在查询特定时间段内的销售数据时,能够快速定位到相应的分区,避免全表扫描,大大提高查询速度。分桶则是根据某个或多个关键字段对数据进行哈希分桶。通过分桶,可以将数据均匀分布到多个桶中,提高数据的并行处理能力。例如,在用户行为数据中,可以根据用户 ID 进行分桶,在进行基于用户维度的分析时,能够并行处理各个桶中的数据,加速查询过程。在实际应用中,需要根据数据的分布情况和查询频率合理设计分区和分桶策略,避免过度分区或分桶导致的性能下降。

4.3 团队协作与沟通的有效模式

跨部门协同合作机制:DWD 层的建设涉及多个部门,包括数据开发团队、业务部门、数据运维团队等。建立有效的跨部门协同合作机制是确保项目顺利推进的关键。首先,数据开发团队需要与业务部门紧密合作,深入了解业务需求和业务流程。通过定期的业务需求调研会议、现场访谈等方式,确保数据模型能够准确反映业务实际情况。业务部门应提供详细的业务规则、数据来源和业务流程文档,帮助数据开发人员更好地理解业务。同时,数据开发团队要向业务部门解释数据处理的技术细节和可能的结果,确保双方在数据理解上达成一致。其次,数据开发团队与数据运维团队需要密切协作,保障数据的稳定加载、存储和维护。数据运维团队负责数据仓库的基础设施建设和运维管理,确保数据存储的可靠性和性能。数据开发团队在进行数据处理和模型开发时,要遵循数据运维团队制定的规范和标准,及时沟通数据处理过程中遇到的问题和需求。通过建立联合工作小组、定期的项目沟通会议等方式,加强跨部门之间的信息共享和协作,及时解决问题,确保项目按时交付。

知识共享与文档管理实践:在 DWD 层建设过程中,注重知识共享和文档管理能够提高团队的工作效率和项目的可维护性。建立详细的技术文档,包括数据模型设计文档、ETL 流程文档、数据字典等。数据模型设计文档应描述事实表和维度表的结构、关系、业务含义和设计思路;ETL 流程文档要详细记录数据从源系统到 DWD 层的抽取、转换和加载过程,包括使用的工具、技术和代码逻辑;数据字典则要定义数据仓库中各个字段的名称、数据类型、业务含义和数据来源。利用团队协作工具(如 Confluence、Wiki 等)进行文档管理和共享,方便团队成员随时查阅和学习。同时,要建立文档的版本控制机制,确保文档的准确性和及时性。通过知识共享和文档管理,新成员能够快速了解项目背景和技术细节,降低团队培训成本,提高项目的可持续发展能力。

5 总结与展望

DWD 层的搭建是企业数据仓库建设中的关键环节,需要综合考虑业务需求、数据特性、技术选型和团队协作等多方面因素。通过合理的建模设计、高效的数据处理和持续的优化改进,能够构建出高质量、高性能的 DWD 层,为企业数据分析和决策提供坚实的数据支撑。

在未来,随着企业数字化转型的加速和大数据技术的不断发展,DWD 层的建设也将面临新的挑战和机遇。一方面,企业业务的日益复杂和数据量的持续增长将对 DWD 层的处理能力和存储效率提出更高的要求;另一方面,新兴技术如人工智能、机器学习在数据仓库领域的应用将为 DWD 层的优化和智能化发展带来新的思路和方法。企业需要持续关注行业动态,不断引入新的技术和最佳实践,进一步提升 DWD 层的价值和作用,助力企业在激烈的市场竞争中赢得优势,实现数据驱动的可持续发展。

希望本文能为企业数据仓库从业者在 DWD 层搭建过程中提供全面、深入且实用的指导,推动企业数据管理水平的提升和数据驱动决策的有效实施。在实际项目中,应根据企业具体情况灵活运用上述方法和策略,不断总结经验,探索适合自身的最佳实践路径。

相关文章:

从 0 到 1 构建数仓之DWD层

在企业数字化转型进程中,数据仓库的建设至关重要,而 DWD 层(明细粒度事实层)作为数据仓库的核心支撑层,其搭建质量直接影响企业数据的分析价值与决策效率。本文将结合实际案例与行业经验,详细阐述企业如何从…...

S4 HANA手工记账Tax Payable – FB41

本文主要介绍在S4 HANA OP中手工记账Tax Payable – FB41。具体请参照如下内容: 手工记账Tax Payable – FB41 该事务代码用于手工处理税码统驭科目的记账,一般税码科目需要设置为只能自动记账,因此无法手工对税码统驭科目记账,但…...

【自然语言处理(NLP)】NLP实战:IMDB影评情感分析项目

文章目录 介绍IMDB影评情感分析项目数据集项目实现1. 导包2. 加载IMDB数据3. 查看部分数据4. 分词5. 加载数据整合6. 构建模型7. 词嵌入8. 初始化模型和权重9. glove词向量10. 训练和评估11. 预测 个人主页:道友老李 欢迎加入社区:道友老李的学习社区 介…...

DIY Shell:探秘进程构建与命令解析的核心原理

个人主页:chian-ocean 文章专栏-Linux 前言: Shell(外壳)是一个操作系统的用户界面,它提供了一种方式,使得用户能够与操作系统进行交互。Shell 是用户与操作系统之间的桥梁,允许用户通过命令行…...

通过Redisson构建延时队列并实现注解式消费

目录 一、序言二、延迟队列实现1、Redisson延时消息监听注解和消息体2、Redisson延时消息发布器3、Redisson延时消息监听处理器 三、测试用例四、结语 一、序言 两个月前接了一个4万的私活,做一个线上商城小程序,在交易过程中不可避免的一个问题就是用户…...

SQL Server配置管理器无法连接到 WMI 提供程序

目录 第一步第二部 第一步 发现没有资源管理器 ​​​​ 在文件夹找到管理器 打开发现报这个错误 配置管理器无法连接到 WMI 提供程序第二部 https://blog.csdn.net/thb369208315/article/details/126954074...

Linux内核源码:ext4 extent详解

在 Linux 系统的庞大体系中,文件系统就像是一个井然有序的图书馆,而 ext4 文件系统则是这座图书馆中极为重要的 “藏书室”,它负责高效管理和存储数据。在 ext4 众多的奥秘中,ext4 extent 犹如一颗璀璨的明珠,起着关键…...

Maven jar 包下载失败问题处理

Maven jar 包下载失败问题处理 1.配置好国内的Maven源2.重新下载3. 其他问题 1.配置好国内的Maven源 打开⾃⼰的 Idea 检测 Maven 的配置是否正确,正确的配置如下图所示: 检查项⼀共有两个: 确认右边的两个勾已经选中,如果没有请…...

自指学习:AGI的元认知突破

文章目录 引言:从模式识别到认知革命一、自指学习的理论框架1.1 自指系统的数学定义1.2 认知架构的三重反射1.3 与传统元学习的本质区别二、元认知突破的技术路径2.1 自指神经网络架构2.2 认知效能评价体系2.3 知识表示的革命三、实现突破的关键挑战3.1 认知闭环的稳定性3.2 计…...

排序算法--希尔排序

希尔排序是插入排序的改进版本,适合中等规模数据排序,性能优于简单插入排序。 // 希尔排序函数 void shellSort(int arr[], int n) {// 初始间隔(gap)为数组长度的一半,逐步缩小for (int gap n / 2; gap > 0; gap …...

Java 2024年面试总结(持续更新)

目录 最近趁着金三银四面了五六家公司吧,也整理了一些问题供大家参考一下(适合经验三年左右的)。 面试问题(答案是我自己总结的,不一定正确): 总结: 最近趁着金三银四面了五六家公…...

TensorFlow是个啥玩意?

TensorFlow是一个开源的机器学习框架,由Google开发。它可以帮助开发者构建和训练各种机器学习模型,包括神经网络和深度学习模型。TensorFlow的设计理念是使用数据流图来表示计算过程,其中节点表示数学运算,边表示数据流动。 Tens…...

不可信的搜索路径(CWE-426)

漏洞描述:程序使用关键资源时(如动态链接库、执行文件、配置文件等)没有明确的指定资源的路径,而是依赖操作系统去搜索资源,这种行为可能被攻击者利用,通过在搜索优先级较高的目录放置不良资源,…...

Linux——基础命令

$:普通用户 #:超级用户 cd 切换目录 cd 目录 (进入目录) cd ../ (返回上一级目录) cd ~ (切换到当前用户的家目录) cd - (返回上次目录) pwd 输出当前目…...

利用TensorFlow.js实现浏览器端机器学习:一个全面指南

引言 随着深度学习技术的不断发展,机器学习已从传统的服务器端运算逐渐转向了前端技术。TensorFlow.js 是 Google 推出的一个用于在浏览器中进行机器学习的开源库,它允许开发者在浏览器中直接运行机器学习模型,而无需依赖后端服务器。Tensor…...

利用HTML和css技术编写学校官网页面

目录 一,图例展示 二,代码说明 1,html部分: 【第一张图片】 【第二张图片】 【第三张图片】 2,css部分: 【第一张图片】 【第二张图片】 【第三张图片】 三,程序代码 一,…...

SpringSecurity密码编码器:使用BCrypt算法加密、自定义密码编码器

1、Spring Security 密码编码器 Spring Security 作为一个功能完备的安全性框架,一方面提供用于完成加密操作的 PasswordEncoder 组件,另一方面提供一个可以在应用程序中独立使用的密码模块。 1.1 PasswordEncoder 抽象接口 在 Spring Security 中,PasswordEncoder 接口代…...

笔记:新能源汽车零部件功率级测试怎么进行?

摘要:本文旨在梳理主机厂对新能源汽车核心零部件功率级测试需求,通过试验室的主流设备仪器集成,快速实现试验方案搭建,并体现测试测量方案的时效性、便捷性优势。目标是通过提升实现设备的有效集成能力、实现多设备测试过程的有效协同、流程化测试,可快速采集、分析当前数…...

ES6中的map和原生的对象有什么区别?

在 ES6 中,Map 和原生的对象(Object)都是用来存储键值对数据的集合,但它们有显著的区别。以下是它们之间的主要区别: 1. 键的类型 Object: 只允许使用字符串或符号作为键。其他类型的键(如数字或对象&…...

2502vim,vim文本对象中文文档

介绍 文本块用户(textobj-user)是一个可帮助你毫不费力地创建自己的文本对象的Vim插件. 因为有许多陷阱需要处理,很难创建文本对象.此插件隐藏了此类细节,并提供了声明式定义文本对象的方法. 你可用正则式来定义简单的文本对象,或使用函数来定义复杂的文本对象.如… 文本对…...

spring security与gateway结合进行网关鉴权和授权

在Spring Cloud Gateway中集成Spring Security 6以实现鉴权和认证工作,可以在网关代理层完成权限校验和认证。这种架构通常被称为“边缘安全”或“API网关安全”,它允许你在请求到达后端服务之前进行集中式的安全控制。 以下是如何配置Spring Cloud Gat…...

LabVIEW在电机自动化生产线中的实时数据采集与生产过程监控

在电机自动化生产线中,实时数据采集与生产过程监控是确保生产效率和产品质量的重要环节。LabVIEW作为一种强大的图形化编程平台,可以有效实现数据采集、实时监控和自动化控制。详细探讨如何利用LabVIEW实现这一目标,包括硬件选择、软件架构设…...

log4j2日志配置文件

log4j2配置文件每个项目都会用到,记录一个比较好用的配置文件,方便以后使用时调取,日志输出级别为debug,也可以修改 <?xml version"1.0" encoding"UTF-8"?> <Configuration monitorInterval"180" packages""><prope…...

用Deepseek做EXCLE文件对比

背景是我想对比两个PO系统里的一个消息映射&#xff0c;EDI接口的mapping有多复杂懂的都懂&#xff0c;它还不支持跨系统版本对比&#xff0c;所以我费半天劲装NWDS&#xff0c;导出MM到excle&#xff0c;然后问题来了&#xff0c;我需要对比两个excel文件里的内容&#xff0c;…...

Tailwind CSS v4.0 升级与 Astro 5.2 项目迁移记录

本文博客链接 https://ysx.cosine.ren/tailwind-update-v4-migrate 自用小记。 Tailwind CSS v4.0 - Tailwind CSS 新的高性能引擎 - 完整构建的速度速度快 5 倍&#xff0c;增量构建的速度快于 100 倍以上 —— 以微秒为单位进行测量。为现代 Web 设计 - 建立在前沿的 CSS 特…...

TongSearch3.0.4.0安装和使用指引(by lqw)

文章目录 安装准备手册说明支持的数据类型安装控制台安装单节点(如需集群请跳过这一节)解压和启动开启X-Pack Security和生成p12证书&#xff08;之后配置内置密码和ssl要用到&#xff09;配置内置用户密码配置ssl&#xff08;先配置内置用户密码再配ssl&#xff09;配置控制台…...

低代码产品表单渲染架构

在React和Vue没有流行起来的时候&#xff0c;低代码产品的表单渲染设计通常会使用操作Dom的方式实现。 下面是一个表单的例子&#xff1a; 产品层 用户通过打开表单&#xff0c;使用不同业务场景业务下的表单页面&#xff0c;中间的Render层就是技术实现。 每一个不同业务的表单…...

windows 剪切板的写入、读取,包括图片,文本内容

介绍 在windows开发过程中&#xff0c;我们可能会需要对系统剪切板进行操作&#xff0c;其中包括读取剪切板数据和将数据写入到剪切板中 设置剪切板内容 /*** brief 设置剪切板内容* param[in] pszData 指向缓冲区的指针* param[in] nDataLen 缓冲区长度* return 成功返回TRU…...

Matplotlib 高级图表绘制与交互式可视化(mpld3)

我们先重新回忆一下它的主要作用: 一、Matplotlib 简介 Matplotlib 是 Python 中一个非常强大的可视化库,广泛用于数据可视化、科学计算和工程领域。它提供了丰富的绘图功能,可以生成各种静态、动态和交互式的图表。以下是 Matplotlib 的主要功能及其详细讲解。 二、基本…...

(9)gdb 笔记(2):查看断点 info b,删除断点 delete 3,回溯 bt,

&#xff08;11&#xff09; 查看断点 info b&#xff1a; # info b举例&#xff1a; &#xff08;12&#xff09;删除断点 delete 2 或者删除所有断点&#xff1a; # 1. 删除指定的断点 delete 3 # 2. 删除所有断点 delete 回车&#xff0c;之后输入 y 确认删除所有断点 举…...