干货 | 携程商旅订单系统架构设计和优化实践

数据仓库的架构与设计 公司之前的数据都是直接传到Hdfs上进行操作,没有一个数据仓库,趁着最近空出几台服务器,搭了个简陋的数据仓库,这里记录一下数据仓库的一些知识。涉及的主要内容有: 什么是数据仓库? 数据仓库的架构 数据仓库多维数据模型的设计 1. 什么是数据仓库1.1 数据仓库的概念官方定义数据仓库是一个面向主题的、集成的、随时间变化的、但信息本身相对稳定的数据集合,用于对管理决策过程的支持。 阅读详情

作者简介

 

Gavin, 携程技术专家, 致力于系统优化、重构和开发效率提升。

概述

携程商旅是一站式互联网差旅服务平台,为客户提供差旅管控、预订、出行、结算、成本、风控等服务的在线TMC(Travel Management Companies)。主要产线有:机票、酒店、火车票、打车、接送机、包车、租车、汽车票等。携程商旅订单系统针对B端客户定制化需求多样性,商旅产线丰富性,TMC业务与产品业务结合的复杂性等,对订单系统架构进行了优化。

一、背景介绍

订单系统作为入口,承上启下,涵盖了订单生命周期中所有的流程管理、TMC管控、创单中心、费用中心、履约中心、服务中心、聚合中心以及投诉理赔管理等。订单打通用户、商家、产品、库存、订后等关键业务,是驱动交易全流程运转的核心。

订单系统具备的能力,可以按照下面两个维度和多个角度进行切入拆解:

  • 客户维度

员工视角:预定、公账垫付、个人支付、行程管理、退改服务、物流跟踪等;

财务视角:成本中心、交易流水、费用明细、账单报表、报销凭证等;

审计视角:审批授权、差旅管控、数据合规、政策合规、风控、反作弊等。

  • 平台维度

客户实施视角:账户配置快照、订单聚合服务、API对接等;

供应商视角:商家拆单、订单状态管理、费用结算、售后管理等。

携程商旅订单系统在早期为了快速满足业务需求,产线为纯纵向独立模式,在业务的快速上线、风险隔离,有效地降低产品之间的耦合性作用明显。随着业务的快速发展、产品丰富度增加、产品之间业务关联程度深化、客户的定制化需求增多和创新型产品快速上线,当前系统架构出现了单一臃肿、耦合严重、功能重复、流程不统一、监控和运维弱等各种问题。

  • 无统一的流程引擎,不能以灵活、可配置的方式支持B端客户快速增长的定制化、碎片化需求;

  • 无统一的编排服务,导致子系统之间高度耦合、相互调用、边界不清晰;

  • 多产线纵向模式、流程不统一、相似功能重复开发,不能快速的支持业务迭代上线;

  • 多产线的订单数据无统一抽象、设计、聚合;接入端学习成本高、接入工作量大;

  • 实时场景 (online) 和非实时场景 (offline) 耦合、不能有效隔离和保护核心资源,降低了系统可靠性;

  • 缺乏有效的自动化补偿机制、监控体系、数据埋点,不能满足B端客户越来越严苛的数据合规要求。

e6bb1fc9b0782a956491708160407929.png


二、基于业务特性的设计原则


2.1 分层设计 - B端系统C端化

从预定视角能够感知到的系统功能:快速下单、支付、出票、确认供应商等。这一点无论C端还是B端都是相通的,使用对象都是“人”,核心目标就是确保用户的行程可以顺利起飞、出行、入住等。C端系统的功能是B端系统的基础,从时间维度划分以下流程,在此基础上B端系统会有其特有的业务属性被嵌入。

这里需要避免按照传统的思维梳理流程图,将B端的功能与C端的功能作为一个整体的流程开发。B端特有的逻辑和服务应该独立开发并且与产品、产线解耦,通过服务编排、流程引擎等实现功能可配置、可扩展、可插拔的方式对订单系统进行统一的调度和驱动,实现B端业务特性与C端逻辑分离和解耦,达到产品需求C端化。

  • 下单 - 购买

B端嵌入功能:选择审批人、成本中心;差旅申请、管控校验;支付账号(公账)、费用政策、报销凭证规则等。

  • 履约 - 支付、出票、发单等

B端嵌入功能:发起审批(审批人通过、拒绝、终止);公账扣款、公司信用支付、费用流水;公司对接推送等;

  • 服务 - 出票、出行等

B端嵌入功能:退改审批流程、管控校验、打卡校验;订单金额、订单状态、票号状态终态的合规验证;未出行订单自动处理流程;费用流水处理、报销凭证处理等;

45df8c583d57867135e297ec88f4f609.png

2.2 流程设计 - 产线多、共性小

从多产线中抽取出共性(去重复、标准化),针对B端系统所具有的定制化、碎片化、特定性等需求,提供通用、统一的标准化流程方案。在标准化流程的基础上再结合订单系统特有的订单状态、订单事件、票号状态等,抽象出流程引擎,实现可配置、可扩展的标准化流程,从而达到化繁为简的效果。


2.3 快照设计 - 管控粒度细、维度多

差旅管控信息(账户配置、支付账号、审批授权、差旅标准、政策执行人等)作为差旅业务的基础信息,对其任何的改动都至关重要,一方面把每次的更改记录都保存下来。另一方面在每次交易订单的各个场景,需要将当时差旅管控信息持久化。以此作为各个子系统交易和运行的基础服务实现统一收口,同时以便问题的排查、处理投诉、维权、溯源等。


三、架构演进

39f1bde5b84b307c13e1953f5ae5fb71.png

系统架构图
3.1 Order Consolidation - 数据抽象

纵向模式向分层模式演进最大的挑战是不同产线之间的数据库的横向,任何数据层面的改动和迁移犹如行驶中的汽车更换轮胎。系统在初期通过纵向的订单详情接口满足前端、各子系统、IM等不同场景,此模式简单清晰,数据全量输出,但是带来的问题也是显而易见的:DB压力过大、接入复杂、学习成本高、数据耦合等。

通过借鉴数据仓库建模的方式,以offline系统思维来降低online系统的复杂性。以子系统的数据详情服务作为事实表Fact, 根据不同的业务场景和粒度输出维度表Dimensions。较少的系统是从头开始、从轮子开始建造,都是在已有基础上优化和迭代,通过通用数据冗余和增加维度数据聚合输出服务, 实现数据层面的横向。

1)数据建模、数据冗余,降低系统复杂性

订单数据进行统一的抽象建模。以订单基础数据、常用数据、各子系统数据行程服务, 报销凭证,退改服务,管控服务等详情数据作为事实表Fact,  建立各种维度表Dimension:订单基础数据、产品基础数据、账户配置快照、行程信息、支付费用信息、TMC管控详情等。

2)核心资源隔离和保护、确保关键流程高可靠性,支持单量的快速增长

随着运维能力和分布式系统的发展成熟,业务系统的API和微服务较容易水平扩展。性能瓶颈不容易解决主要是在DB层面,并不能轻易的扩展分库分表或者引入新的存储服务。订单库和online DB是整个订单系统交易的基础,降低数据库IO压力、保护关键路径和确保订单系统全流程的驱动顺畅需要尽可能的减少DB执行负荷重的任务:通用数据查询、列表查询、复杂查询、聚合查询、模糊查询、高频查询等,而这些场景基本上做到NRT(near real-time)准实时输出即可。OCS通过冗余落地的准实时数据和提供一系列的API服务达到隔离核心资源的目的。

3)大幅降低客户端学习成本、接入成本,支持业务的快速迭代

一个订单从预定到最终的结算经过较多的子系统和数据处理,整个订单生命周期产生的数据大而全、零碎、分散在各个DB和各个子系统,对于client端接入需要感知较多的逻辑和熟悉众多的交互API,不仅学习成本高,同样一个场景在不同的产线需要多次实现。

对于较多的场景如列表查询、基本数据查询、交叉推荐查询等通过数据的统一抽象、融合、落地实现流程统一、API统一、交互统一大幅简化接入端的成本,包括产品、BI、业务的取数规则等。

a1eb4d77e1a8d212e76a66b0a062a341.png

Order Consolidation Service

3.2 Order Message - 客户端减负

设计API和服务时通常考虑较多的是API如何设计、交互、传参、client需要遵循的各种规则,较少的考虑client可以不做什么,client在享受服务的同时应该可以不做一切可以不做的事情。传统上消息发送服务设计为提供不同消息的发送接口,由各客户端根据各自的业务流程处理指定模板、类型、动态内容等调用对应的接口, 这个看起来是符合高内聚、低耦合的通用设计原则的。

原流程发送一个消息需要client端调用多个数据源查询数据、各种逻辑判断、消息类型、发送场景、模板处理等。新的设计将各个消息抽象为产线,场景模式对应一套配置和一套数据源API(统一为key-value输出),注册在消息中心,类似网卡插入主板后,需要安装驱动程序实现可插拔的方式大幅减少client端的工作,client只需要传一个场景即可实现一系列消息的发送。根据实际的业务场景,需要根据下面6种场景的排列组合,触发一个或多个消息的发送。

1)发送场景:创单、支付、确认客户、出行、成交等。

2)发送模板:支付类型、订单处理阶段、订单状态等。

3)发送语言:中文简体、中文繁体、英文、日文、韩文等。

4)发送类型:短信、邮件、微信、企业消息、站内信、手工操作等

5)收 件 人: 联系人、预订人、出行人、授权人。

6)数据来源:订单数据、成本中心子系统、审批子系统、账户配置子系统,消息附件等

05c4ee613396446aef86aae613df2384.png

通用消息中心-配置服务

3.3 Order Conductor - 服务编排

1)服务拆分和边界确定之后,系统之间的交互同样需要统一的规则和整体上的设计。尤其需要避免单一事件触发后,需要调用一系列的API和较为复杂的交互流程,导致调用链过长,服务之间相互调用、耦合严重等问题。

  • 每个服务都需要感知下游服务;

  • 业务规则治理和调用的灵活性、扩展性较差;

  • 不能做到真正意义上的事件驱动;

2)服务编排是根据业务逻辑,以串行、并行和分支等结构编排多个API及函数服务为工作流,达到统一调度和指挥各个业务子系统,同时更加有利于事件驱动机制的落地。极大简化了多个服务之间组合调用的开发和运维成本,更加专注于业务本身。要实现服务编排、自由组合、灵活扩展满足下面的条件是基本前提。

任务原子化:每个接口或API拆分合理、职责单一,实现任务的原子性。

数据私有化:每个任务都有一套对应的数据表,并且仅自己本身可以操作和访问。如果没有实现数据库和资源的隔离,那任务原子化也就不存在,需要避免多个任务读写同一数据表和资源。

契约相通:任务编排,契约相通才能实现服务的统一调度。契约的设计必须是高度精简、覆盖全场景的。订单系统全流程驱动中一定会有的是:订单号、场景。如事件:退票完成,各被调用的服务通过数据反查获取数据,实现服务之间通信的契约大幅简化, 而不是依赖调用端的各类传参。

事件驱动:定义全流程统一的事件列表枚举,非查询类的操作完成后触发其对应的事件通知编排服务中心,根据流程配置统一调度实现服务编排。尤其需要避免的是各个服务之间相互直接调用,相互订阅广播通知导致系统的耦合和边界不清晰,以及服务扩展较差。

服务幂等性:服务的统一调度,不可避免的会出现多次被调用和触发的可能,每个原子性任务都需要根据自己的业务支持幂等性。

重试机制:与服务幂等性相辅相成、缺一不可,编排服务中心需要统一调度,就需要在配置和设计上支持任务的可重试、可降级和最终到达。

DB访问降频:由于任务的原子性拆分,每个任务执行依赖的数据都需要调用详情查询服务获取需要的数据,即使是相同的数据也是需要各自获取导致数据库IO压力的大增。针对这个场景有很多种方案。

  • 通过建立全局的thread context查询一次,各子线程或分支线程统一依赖降低DB的频繁访问。优缺点很明显的方案,维护和数据隔离较差,尤其是跨线程、子线程存在数据被篡改的风险和其他问题;

  • 数据冗余、准实时同步、隔离核心资源以offline思维降低订单库和online DB的访问。通过维度建模,满足基本查询、通用查询、高频查询等场景实现流量的分流。由于统一的抽象,对于数据的输出更加有利于服务端的缓存建立。比如我们采用上一段落介绍的OCS方案。

57f754ae212e0cad82d03bbf04e4dd60.png

Order Conductor

3.4 Order Fulfillment - B端场景

B端用户需求与传统的企业级软件有非常多的相似点,定制化和多样性是最为显著的共同点。商旅B端客户即使是基本的功能:支付流程、发单方式、管控流程、通知内容等都有显著的差异。以订单系统酒店产线举例,下面的订单属性和订单状态各个值排列组合出50种以上需要处理的流程,这仅是酒店一条产线。

订单属性:订单类型、授权顺序、支付方式、垫资方式、配置流程、国际国内、三方协议等,

订单状态:已提交、未提交、授权通过、授权拒绝、已支付、已出票、已取消、确认客户等;

不仅微服务之间需要统一调度和流程配置,而对于每个应用或每个服务同样如此。订单系统仅通过工作流驱动并不能满足要求,其最为重要的属性就是订单状态、订单事件等触发和驱动订单系统的流转。通过开发基于订单状态、订单事件结合工作流开发流程引擎达到可配置、可扩展、易维护的目的,而又避免引入较笨重的开源工作流引擎达到“够用即可”:

  • 有状态、可重试、支持幂等,

  • 任务持久化、可配置、可扩展、易维护,

  • 基于状态、事件的统一处理流程;

cc055d2bc32b90fe64a84393608d4c58.png

流程引擎

d94c96e5759a8ab2e11c6c1e4e21d56b.png

状态驱动+流程引擎


四、论述与总结


什么是好的设计?
  • 一个好的设计不是还能增加什么,而是不能再减少什么。

  • 一个好的设计不是客户端需要做什么,而是可以不做什么。

  • 一个好的设计是自动化一切可以自动化的东西。

  • 一个好的设计是标准化一切可以标准化的流程。


什么应该横向?什么应该纵向?

d9b9f1ec7d9b76584c7e3f1a06052dd3.png

什么应该纵向? 业务上共性少,差异大,对于客户需求需要快速响应,业务上需要快速试点和产品创新,正如图第一象限业务层展示的特点:特殊性,可变性。所以业务层在系统上应该纵向,隔离,但是在流程上标准化,可配置化,确保其灵活快速响应,尽可能少的涉及具体实现。

什么应该横向? 高确定性、高通用性功能应该横过来供不同的团队和子系统共享,作为各个产线子系统的基础,同时也是支持业务在已有系统上快速上线,创新,试点的平台。

当业务需要快速的上线和需要速度运行,快速推向市场的时候,我们应该让业务、产线分开快跑,应该把业务变成纵向的,独立成建制的往前快速推进,摧枯拉朽,策马狂奔。随着单量的增长和业务的延伸,尤其各产线趋同功能变多,定制化需求和创新性需求增多,合规性性要求越来越严格,系统就暴露出大量问题:大量低水平重复建设,重复开发,效率低下,运维困难,任何新功能,新产品上线都需要从轮子开始建造。当我们需要效率、要积累、要沉淀的时候,尤其需要在已有系统上快速创新、试点新的产品时候,就非常明显要把有些东西横过来,从整体上规划和设计,让整个系统架构统一,流程统一成支撑体系包括技术沉淀,子系统中台化演进让其能够有办法共享给其他子系统和团队。

什么叫中台,为什么需要它?中台被过度神化过,也被极端的污名化。中台并无对错,主要取决于设计与边界。其被诟病主要原因:

1)圈地运动:什么都能做,什么都可以做,基于不能重复建设的原则各client被强制要求接入。基于原则而实际上是无原则的开发模式,导致系统臃肿、边界不清晰、耦合严重,不能通用而被通用只能通过给client制定各种条条框框和特殊定义来约束系统之间的交互、接入成本和沟通成本高,反映不够灵活,对于创新型的业务不能快速的支持,需要反复的沟通和规则制定,不仅没有享受到便利,反而成为了负担。是一种明显的山头主义,势力范围的划分。

2)代理式中台: 高举高内聚、低耦合的伟大旗帜,这也不能做,那也不能做,将client视为负担而非流量。client需学习各种接入规则和传参契约,接入成本高和使用复杂,不同渠道稍有逻辑不一致需要client 自行处理,某种意义上说仅起到转发的作用。中台实际上是一个横向策略。如果你要速度,要快速,要机动灵活,一定是这根杆子从上到下,都是一个人或一个团队负责,这是最快的。而如果client 需要感知各种流程,等于是逻辑分散,没有做到真正的抽象和下沉。业务中台需从整体上设计基于配置化编程满足不同渠道的需求,而又不打破低耦合的原则,而非仅仅是个代理,是个类似基础架构的网关。

3)资源垄断:垄断了资源输出和对外交互,client除了接入无其他选择。同时又受制于团队体量,团队话语权,ROI等各种因素得不到排期或列为低优先级任务。

团队招聘信息

我们是携程集团商旅事业部,是中国领先差旅管理公司(Travel Management Company),我们为企业客户提供一站式差旅产品出行及咨询服务并协助企业管理差旅费用。

携程商旅的技术团队深入B端技术架构生态,勇于尝试创新,乐于数据思维推进技术和业务并行发展。我们提倡工程师文化,热情开放,非常适合有想法的你来这个平台大展身手,期待与你共事。

目前有前端/后端Java开发/测试开发等岗位正在火热招聘。简历投递邮箱:junyizhu@trip.com,邮件标题:【姓名】-【携程商旅研发部】- 【投递职位】

【推荐阅读】

03cbf9dd242e5534f87d3ac5198103d3.png

 “携程技术”公众号

  分享,交流,成长

数仓分层设计架构 详解-ODS-DWD-DWS-ADS 一、数仓建模的意义,为什么要对数据仓库分层?只有数据模型将数据有序的组织和存储起来之后,大数据才能得到高性能、低成本、高效率、高质量的使用。分层意义1、清晰数据结构:每一个数据分层都有它的作用域,这样我们在使用表的时候能更方便地定位和理解。数据关系条理化:源系统间存在复杂的数据关系,比如客户信息同时存在于核心系统、信贷系统、理财系统、资金系统,取数时该如何决策呢?数据仓库会对相同主题的数据进行统一建模,把复杂的数据关系梳理成条理清晰的数据模型,使用时就可避免上述问题了。2、数据血缘追踪:简单来讲可以这样理解 阅读详情

相关推荐

tars:携程首次发布系统

Docker引导程序 要求 码头工人和码头工人组成 GNU make 预备 cp tars/settings/local.py.example tars/settings/local.py 只需输入 make docker_bootstrap 然后,请访问以访问Tars 前端 建立前端 make frontend 使用Docker构建前端,请确保容器退出代码为0 make frontend_docker 如果无法安装Bower组件,请尝试使用分支demo/static_embedded Docker演示 ./demo/bootstrap.sh 演示管理员帐户: 用户名:admin 密码:nomoresecrete

大数据平台架构及主流技术栈

互联网和移动互联网技术开启了大规模生产、分享和应用数据的大数据时代。面对如此庞大规模的数据,如何存储?如何计算?各大互联网巨头都进行了探索。Google的三篇论文 GFS(2003),MapReduce(2004),Bigtable(2006)为大数据技术奠定了理论基础。随后,基于这三篇论文的开源实现Hadoop被各个互联网公司广泛使用。在此过程中,无数互联网工程师基于自己的实践,不断完善和丰富H...

互联网工匠 4841

告别PS串口焦虑:深入解析AXI Uartlite IP核如何将ZYNQ PL任意引脚变成串口(从Vivado约束到驱动文件全解析)

本文深入解析AXI Uartlite IP核如何将ZYNQ PL任意引脚变成串口,从Vivado约束到驱动文件全解析。通过AXI Uartlite IP核,开发者可以突破PS端UART数量限制,实现高效串口通信。文章详细介绍了IP核架构、Vivado工程配置、驱动开发及调试技巧,帮助开发者快速掌握这一技术。

weixin_33736649的博客 467

BI体系架构

一、BI介绍 BI(Business Intelligence),中文译名是商务智能。 较为严谨的定义:“商务智能是企业利用现代信息技术收集、管理和分析结构化和非结构化的商务数据和信息,创造和累计商务知识和见解,改善商务决策水平,采取有效的商务行动,完善各种商务流程,提升各方面商务绩效,增强综合竞争力的智慧和能力。” 比较简洁的定义:商务智能好比“数据炼油厂”,即把商业活动中累积的数据加工成可用于支持商业决策的信息。 二、BI架构 1、场景需求 一个BI系统为了满足企业管理者的需求,须做到如下几步: ①整

m0_61607827的博客 6521

SuperMap iDesktop 9D三维倾斜摄影数据处理

OSGB格式的三维倾斜摄影数据进入时空大数据平台之前需要进行数据优化和格式转换

weixin_43204897的博客 1131

基于AT32F421的紧凑型FOC电机驱动板设计

磁场定向控制(FOC)是永磁同步电机(PMSM)与无刷直流电机(BLDC)实现高精度转矩控制和高效运行的核心技术,其本质是通过Clarke/Park坐标变换解耦定子电流,实现d轴磁链与q轴转矩的独立调节。该技术依赖实时性严苛的电流采样、高精度位置反馈及确定性PWM生成,广泛应用于机器人关节、智能装备等中小功率伺服场景。国产Cortex-M4微控制器(如AT32F421)凭借集成ADC、高级定时器与DSP指令集,已成为低成本、高可靠FOC嵌入式实现的理想平台。本文围绕一款工程化FOC驱动板展开,涵盖低侧电流采

weixin_42510243的博客 702

架构(六)系统架构设计

最近拜读了携程一位大牛:Gavin的文章,干货 | 携程商旅订单系统架构设计和优化实践,里面谈及许多架构分层的理念,读后感悟很多,结合博主自己在系统开发过程中的经验聊一聊架构设计。

m0_69270256的博客 5万+

CST Studio Suite安装详细教程(附安装包)CST Studio Suite 2024超详细安装教程

CST Studio Suite 2024安装指南摘要:本文详细介绍了CST Studio Suite 2024电磁仿真软件的下载与安装流程,包含23个图文步骤说明,从解压安装包到配置许可证服务器。重点提示了以管理员身份运行、自定义安装路径等关键步骤,并提供了常见问题解决方案和入门技巧。该软件适用于天线设计、PCB分析等高频电磁场仿真,安装后需通过localhost:27000连接许可证服务器完成激活。

pythonqiang9的博客 1万+

订单系统设计-基础篇

订单设计

qq_32979219的博客 3672

Spring AI 实战:如何使用 MCP Server 搭建 MCP 天气查询服务

MCP(Model Context Protocol)是 Anthropic 提出的一种开放协议,它定义了AI 模型与外部世界交互的标准方式。通俗地说:大模型本身只拥有训练数据中的知识,它不知道今天的天气、无法查询你的数据库、不能调用你的内部 API。MCP 就是解决这个问题的"桥梁"——它让模型能够发现并使用外部工具(Tools),就像人用手去操作工具一样。角色职责对应依赖MCP Server暴露工具(Tool),供模型调用MCP Client连接 Server,让模型发现和使用工具本文我们先聚焦。

SmartSi 757

爬虫瑞数5案例:联通

瑞数动态安全 Botgate(机器人防火墙)以“动态安全”技术为核心,通过动态封装、动态验证、动态混淆、动态令牌等技术对服务器网页底层代码持续动态变换,增加服务器行为的“不可预测性”,实现了从用户端到服务器端的全方位“主动防护”,为各类 Web、HTML5 提供强大的安全保护。

老衲爱洗头的博客 4470

QQ音乐PB级ClickHouse实时数据平台架构演进之路

导语 |OLAP(On-Line Analytical Processing),是数据仓库系统的主要应用形式,帮助分析人员多角度分析数据,挖掘数据价值。本文基于QQ音乐海量大数据实时分...

QcloudCommunity的博客 874

计算机网络技术研究方向有哪些创新点

计算机网络技术方向的创新点众多,这些创新不仅推动了网络技术的不断发展和完善,还为用户提供了更高效、更安全、更便捷的网络服务。- 边缘计算是一种将计算和数据存储推向网络边缘的技术,通过将数据处理和分析的任务分散到网络的各个节点,降低了数据传输的延迟,提高了实时性。- 通过网络自动化工具和技术,可以实现网络配置的自动化、网络故障的自动诊断与修复等功能,降低了网络运维的复杂性和成本。- 通过引入人工智能技术,网络可以实现更智能的流量管理、故障预测和自动修复等功能,提高了网络的性能和稳定性。

Loving_enjoy的博客 1495

数据分析体系的架构与实践之java版Spring Cloud+SpringBoot+mybatis+uniapp微服务架构

1.1 名词解释 需要框架源码的朋友可以看我个人简介联系我。推荐分布式架构源码 二、面临的挑战和痛点 2.1【业务方面】 为了让客户清晰地、全面多视角的、多维度指标的查看在爱番番系统中创建线索、分配线索,跟进线索,成单等过程的详细漏斗情况以及了解员工跟进情况,需要数据统计分析为客户提供各环节有价值的数据产品。 1)有价值:如何为客户提供有价值的数据产品服务,是贯穿需求审评阶段需要重点考虑的问题;2)及时性:例如客户给自已的员工分配了一条线索或者员工跟进线索的细节,希望能够快速...

m0_65038841的博客 1086

TensorRT的安装:一步一步教会你如何安装TensorRT

TensorRT(Tensor Runtime)是由NVIDIA开发的一个用于深度学习推理(inference)优化的库,它可以在NVIDIA的GPU上加速神经网络模型的推理过程,从而提高模型的性能和效率。安装完成后,需要将CUDA的安装路径添加到系统环境变量中,以便系统能够找到CUDA的库文件。根据你安装的CUDA版本,将CUDNN的库文件复制到CUDA的安装目录中。要使用TensorRT,首先需要安装NVIDIA的CUDA和cuDNN库,并根据NVIDIA官方文档安装TensorRT。

Science prince的博客 2372

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

百度智能云大数据平台技术讲解及落地实战

在今天数字经济的浪潮中,产业充分认识到要做好数字化、智能化,第一件要做的事情即是健全的企业大数据能力。在数据量指数增长、数据类型繁杂多样、数据应用场景多变、数据分析实时性要求高的多重挑战下...

过往记忆大数据 1991

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

数仓分层设计架构

只有数据模型将数据有序的组织和存储起来之后,大数据才能得到高性能、低成本、高效率、高质量的使用。

qq_25647841的博客 6132

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

网络安全体系方法论

安全牛整合多位资深安全顾问的一线咨询经验,首次公开发布《网络安全体系方法论》,旨在给企业或机构提供一个最佳实践的参考,以帮助企业真正提升对网络安全工作的认识,并在安全建设和运营中不断成长。 本架构方法论参考了NIST Cybersecurity Framework,SABSA,ISO27000,Gartner等报告资料,并与等级保护的相关要求相结合。 一、企业网络安全体系设计总体思路 网络安全体系架构是面向企业未来网络安全建设与发展而设计。 企业网络安全体系设计总体思路:针对企业防护对象框架,通

网络空间发展与战略研究 4818

千亿级数量下日志分析系统的技术架构选型

 随着数据已经逐步成为一个公司宝贵的财富,大数据团队在公司往往会承担更加重要的角色。大数据团队往往要承担数据平台维护、数据产品开发、从数据产品中挖掘业务价值等重要的职责。所以对于很多大数据工程师,如何根据业务需求去选择合适的大数据组件,做合适的大数据架构工作就是日常工作中最常遇到的问题。在这里根据七牛云在日增千亿级的日志分析工作,和大家分享一下大数据技术架构选型的一些经验。 大数据架构师在关...

weixin_34130389的博客 530

如何打造一个顶尖的精确营销系统?

这是傅一平的第338篇原创【与数据同行】已开通综合、数据仓库、数据分析、产品经理、数据治理及机器学习六大专业群,加微信号frank61822702为好友后入群。新开招聘交流群,请关注【...

fuyipingwml1976124的博客 2205

查询提速 20 倍,Apache Doris 在 Moka BI SaaS 服务场景下的应用实践

目前 MokaBIDoris 有两个集群,共 40 台服务器,数仓共维护了 400 多张表,其中 50 多张表数据量超过 1 亿,总数据量为 TB级别。Doris 基于列存储技术,能够快速处理大量的数据,并支持高并发的在线查询,解决了关系型数据库无法支持的复杂查询问题,复杂 SQL 查询的速度上升了一个数据量级。数据仓库Doris 采用分布式集群架构,可以通过增加节点来线性提升存储和查询瓶颈,打破了关系型数据库数据单点限制问题,查询性能得以显著提升。

SelectDB 676

简谈企业Power BI CI/CD实施框架

在企业场景中,BI报表更多地作为一项IT服务,而绝不仅仅只是报表工具而已。同理,也正如我此前多次阐明,Power BI是一套服务,绝不仅仅只是Power BI Desktop,它的开发,测试与部署,需要得到有效的管理。因而............

DAVIS的博客 737

IT 战略规划-方法论

企业在发展过程中无疑需要制定战略规划,以指导企业实现可持续发展,推动企业信息化。而企业战略决定了IT战略。具体而言,IT战略规划应当如何制定?

深圳市多克创新科技有限公司 2633

调研了32家银行,总结出了银行BI大数据平台建设的一套模式

传统来讲,银行定制一张报表,分析某个业务数据,主要通过业务部门提出需求,科技部门编写程序来实现。从提出需求到科技部最终开发完报表,中间存在反复的口径沟通、试验取数的过程。一张报表,从考虑排期问题,提出需求,到最终完成快则一两周,慢则几个月。 传统数据分析平台遇到的问题如下: 数据分析流程冗长。业务人员对任何已有报表的调整需求,都要严重依赖IT人员重新开发并发布,流程复杂,效率低下。 ...

帆软商业智能技术 3741

新一代云数据平台架构演进之路

导读本文是由浙江数新网络有限公司为我们带来的《新一代云数据平台架构演进之路》的技术分享。本次分享分为四个部分:1. 大数据发展回顾2. 云数据平台演进趋势3. 云数据平台技术架构4. 云数据平台实践案例分享嘉宾|原攀峰 数新网络 CTO编辑整理|皮卡丘狮桥(中国)出品社区|DataFun01大数据发展回顾数据平台是指提供数据集成、数据存储、数据管理、数据处理、数据分析、数据服务等数据全生命周...

学而知之@的博客 1078

详解数据仓库数据湖及湖仓一体

随着近几年数据湖概念的兴起,业界对于数据仓库和数据湖的对比甚至争论就一直不断。有人说数据湖是下一代大数据平台,各大云厂商也在纷纷的提出自己的数据湖解决方案,一些云数仓产品也增加了和数据湖联动的特性。但是数据仓库和数据湖的区别到底是什么,是技术路线之争?是数据管理方式之争?二者是水火不容还是其实可以和谐共存,甚至互为补充?本文作者来自阿里巴巴计算平台部门,深度参与阿里巴巴大...

weixin_38754337的博客 2802
上一篇: 干货 | 携程APP Native/RN内嵌Flutter UI混合开发实践和探索
下一篇: 干货 | 小程序跨端框架实践之Remax篇
携程技术
博客等级 码龄10年 3716粉丝 324原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值