我的编程空间,编程开发者的网络收藏夹
学习永远不晚

数据仓库建设要点须知

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

数据仓库建设要点须知

   国际标准化组织(ISO)对计算机系统安全的定义是:为数据处理系统建立和采用的技术和管理的安全保护,保护计算机硬件、软件和数据不因偶然和恶意的原因遭到破坏、更改和泄露。由此计算机网络的安全可以理解为:通过采用各种技术和管理措施,使网络系统正常运行,从而确保网络数据的可用性、完整性和保密性。

  要建造一所歌剧院大厅,如果不搞总体规划,那将是不可能的。一旦作出了总体规划,一些设计小组就可以分别进行各个部门的设计了。一项完整的信息工程,其复杂性并不亚于歌剧院大厅的建造。但是,在大多数企业里,总是不经过充分详细地搞好总体规划,考虑好各部门如何协调工作,就着手进行。不难想象,歌剧院大厅的总设计师不必专门地为各个部门,如舞台机构、音响设备或其它子系统进行详细设计,这些应该由不同的设计组去独立完成。

  信息系统的建设亦然。特别是随着计算机设备的不断跌价,个人计算机越来越多地应用于管理的各个部门,要发挥这些设备的功能,必须把它们有机地联系起来,既能满足每个管理人员的信息需要,又能给决策层领导提供及时的信息。这时,人们才吃惊地发现,分散的开发所带来的严重后果:修改原先的软件,重新组织数据,连成一个统一的大系统,所耗费的人力和资金比重新建立还要多;甚至,采取维护和修改的办法是根本行不通的。

  系统维护问题就象病魔一样缠住了数据处理的发展,这就是人们所说的“数据处理危机”。总体数据规划的诞生,就象其它理论的出现一样,有着自己的特殊原因和动力,它是数据处理危机的必然结果。

  本文将重点探讨数据处理层中数据仓库的建设。在第二篇运营数据系统一文,有提到早期的数据服务中存在不少问题,虽然在做运营Dashboard系统时,对后台数据服务进行了梳理,构建了数据处理的底层公共库等,但是仍然存在一些问题:

  中间数据流失,计算结果没有共享。比如在很多数据报告中都会对同一个功能进行数据提取、分析,但是都是各自处理一遍,没有对结果进行共享。

  数据分散在多个数据源,如MySQL、MongoDB、Elasticsearch,很难对多个源的数据进行联合使用、有效组织。

  每个人都需要非常清楚产品业务逻辑才能正确地提取、处理数据,导致大家都将大量时间耗费在基础数据处理中。

  于是,我们考虑建设一个适于分析的数据存储系统,该系统的工作应该包含两部分:第一,根据需求抽象出数据模型;第二,按照数据模型的定义,从各个数据源抽取数据,进行清洗、处理后存储下来。虽然数据仓库的学术定义有很多版本,而且我们的系统也没有涉及到多部门的数据整合,但是符合上述两个特点的,应该可以归结到数据仓库的范畴了,所以请允许笔者将本文命名为“数据仓库的建设”。

  下图所示,为现阶段我们的数据仓库建设方案。数据主要来源于MySQL和MongoDB中的业务数据、Elasticsearch中的用户行为数据与日志数据;ETL过程通过编写Python脚本来完成,由Airflow负责任务流的管理;建立适于分析的多维数据模型,将形成的数据存入MySQL中,供数据应用层使用。可以看到,数据仓库本身既不生产数据也不消费数据,只是作为一个中间平台集中存储数据,整个系统实现的重点在于数据建模与ETL过程,这也是日常维护中的重点。

数据仓库建设要点须知_大数据_数据建设_虚拟化_编程学习网教育

  存储选型

  将数据落地到哪里是首先要考虑的问题,笔者考虑的因素主要有这么几点:一是数据量大小和增长速度,二是要能实现SQL或者类SQL操作,有多表联合、聚合分析功能,三是团队技术栈。可选的技术方案有MySQL、Oracle和Hive,最终选择了基于MYISAM存储引擎的MySQL,部分原因如下:

  要不要Hadoop? 生产业务数据库与用户行为数据增长均比较缓慢,预计在接下来的一年里数据仓库的总存储量不会超过500GB 。因此现阶段接入Hadoop的意义不大,强行接入反而会降低工作效率。而且团队主要技术栈是Python,使用Python操作Hadoop本身就会有性能损耗。

  为什么是MySQL? 相比Oracle,团队对MySQL更加熟悉,所以笔者更多的考虑是选择MySQL的哪个存储引擎:Infobright vs. myisam vs. innodb。Infobright引入了列存储方案,高强度的数据压缩,优化的统计计算,但是目前已经没有社区版了,需要收费。抛开底层存储的区别,myisam与innodb在特性上的区别主要体现在三个方面:第一,引用的一致性,innodb有外键,在一对多关系的表之间形成物理约束,而myisam没有;第二,事务,innodb有事务操作,可以保证一组操作的原子性,而myisam没有;第三,锁级别,innodb支持行锁,而myisam只支持表锁。对于外键与事务,并不是数据仓库需要的,而且数据仓库是读多写少的,myisam的查询性能优于innodb,因此myisam成为首选。

  数据建模

  根据数据分析的需求抽象出合适的数据模型,是数据仓库建设的一个重要环节。所谓数据模型,就是抽象出来的一组实体以及实体之间的关系,而数据建模,便是为了表达实际的业务特性与关系所进行的抽象。数据建模是一个很宽泛的话题,有很多方法论值得研究,具体到业务上不同行业又会有不同的建模手法。这里主要结合我们的实践来简单地谈一些认识和方法。

  目前业界有很多数据建模的方法,比如范式建模法、维度建模法等等。遵循三范式,我们在做业务数据库设计时经常会用到,这种方法对业务功能进行抽象,方便功能扩展,但是会额外增加分析的复杂度,因此笔者更倾向于维度建模法。维度建模法,是Kimball 最先提出的概念,将数据抽象为事实表与维度表两种,而根据二者之间的关系将整体的模型划分为星型模型与雪花模型两种。这种建模方法的优势在于,根据各个维度对数据进行了预处理,比如按照时间维度进行预先的统计、分类等等,可以提高数据分析应用时的效率,是适于分析的一种方法。具体来看看几个概念:

  维度表与事实表。维度表,描述的是事物的属性,反映了观察事物的角度。事实表,描述的是业务过程的事实数据,是要关注的具体内容,每行数据对应一个或多个度量事件。比如,分析“某地区某商品某季度的销量”,就是从地区、商品、时间(季度)三个角度来观察商品的销量,维度表有地区表、商品表和时间表,事实表为销量表。在销量表中,通过键值关联到三个维度表中,通过度量值来表示对应的销量,因此事实表通常有两种字段:键值列、度量值列。

  星型模型与雪花模型。两种模型表达的是事实表与维度表之间的关系。当所有需要的维度表都直接关联到事实表时,看上去就是一颗星星,称之为星型模型;当有一个或多个维表没有直接关联到到事实表上,而是通过其他维度表连接到事实表上时,看上去就是一颗雪花,称之为雪花模型。二者的区别在于,雪花模型一定程度上降低了信息冗余度,但是合适的冗余信息能有效的帮助我们提高查询效率,因此,笔者更倾向于星型模型。

二者的区别在于,雪花模型一定程度上降低了信息冗余度,但是合适的冗余信息能有效的帮助我们提高查询效率,因此,笔者更倾向于星型模型。

  基本的维度建模思路。维度建模的基本思路可以归纳为这么几点:第一,确定主题,即搞清楚要分析的主题是什么,比如上述的“某地区某商品某季度的销量”;第二,确定分析的维度,准备从哪几个角度来分析数据;第三,确定事实表中每行的数据粒度,比如时间粒度细化到季度就可以了;第四,确定分析的度量事件,即数据指标是什么。

  举个例子,业务场景是:一款做连锁企业招聘工作的产品,比如为麦当劳的所有连锁门店招聘员工,现在要分析“每家门店的招聘情况如何?”。结合具体业务,我们引入六个维度:时间维度、地区维度、品牌维度、门店维度、职位维度、申请渠道;数据指标上,主要有申请工作人数、申请工作次数、聘用人数、拒绝人数,每个指标分别有增量值和总量值两种;数据粒度上,时间维度细分到以小时为单位,地区维度细分到市一级。下图所示便是相应的星型模型,有三点值得一提:

  可以看到我们只建立了四张维度表,地区维度和渠道维度是直接以字符串的形式放到事实表中的。这是维度设计中经常遇到的一个问题:如果这个维度只有一个属性,那么是作为单独的一张表还是作为事实表的一部分?其实并没有完全对与错的答案,只有是否适合自己的答案。这里,城市与渠道的信息并不会发生变化,所以放入事实表中可以避免联合查询。

  建立了统一的时间维度,可以支持各种时间统计方案,避免在查询时进行时间值运算。

  数据流设计的最大障碍是部门设置的条块分割,总体规划要为用户方面提供一种灵活性,使他们能积极主动地建立他们所需要的系统,又要遵循一定的规则,使这些系统保持一致性,不论是现在还是将来都能相互交换数据。然而,总体规划的阻力主要来自企业里的一些用户(包括高级管理人员)和一部分习惯于独立开发的数据处理部门的人员。

  企业里的用户总想要拥有自己的信息资源,只关心与自己有关的系统的建立和修改。习惯于独立开发的人好象一些无政府主义者,以为最好是自己想干什么就干什么。其实,社会需要一定的基础结构,有法律、法令和规章制度,才能保障其成员有更多的创造自己生活的自由。

  例如计件工资处理子系统中对“袋物”的计件定额是一样的,而不管它是“袋化肥”还是“袋粮食”,但在统计部门的成本分析中,不同货类作业的能耗差距甚远。所以统计部门能耗分析子系统的原始数据是作业票计件工资处理子系统中的数据加上“货类”。而计件工资处理子系统又不隶属于统计部门,操作员就不愿送“货类”,“嫌麻烦”。这种扯皮现象存在于许多系统中。

  在品牌维度、门店维度、职位维度三张表中,都有prod_xxxx_id的字段,其值是产品业务数据库中相应数据的id,作用是为了与业务数据库中的信息进行同步。当业务数据库中的相关信息发生变化时,会通过ETL来更新数据仓库中的信息,因此我们需要这样的一个字段来进行唯一标识。

在品牌维度、门店维度、职位维度三张表中,都有prod_xxxx_id的字段,其值是产品业务数据库中相应数据的id,作用是为了与业务数据库中的信息进行同步。当业务数据库中的相关信息发生变化时,会通过ETL来更新数据仓库中的信息,因此我们需要这样的一个字段来进行唯一标识。

  ETL

  ETL这块,由于前期我们做了不少工作来构建底层数据分析公共库,能有效的帮助我们进行数据抽取与处理,因此,现阶段还没有引入诸如Kettle这样的开源工具,主要采用编写Python脚本来实现。这里主要谈谈增量更新机制与任务流管理两个问题的策略。

  1. 增量更新机制

  增量更新的背景是这样的:第一,上面有提到,对于可变的维度表,我们添加了prod_xxxx_id字段来唯一标识,实现信息覆盖更新。对于事实表,为了反映历史状态,表中的数据通常是不可逆的,只有插入操作,没有删除或者修改操作,表示在过去一段时间内完成的事实业务数据,更新的方法就是插入新的数据。第二,ETL通常是近实时的,需要依赖schedule触发更新,因此每次需要更新的信息就是上一次更新时间与当前时间之间的变化数据。笔者采用的策略是:

  建立一张temp表,表中有last_update_time与etl_name两个字段;

  每次更新时,首先查询出相应的etl_name的最近一条记录,取其中的last_update_time作为起始时间,取当前时间为结束时间;

  抽取数据源中在这段时间内变化的数据,作为ETL过程的输入,进行处理;

  更新成功时,插入一条数据,last_update_time为当前时间。

  2. Airflow任务流管理系统

  在早期数据服务中,我们主要依靠crontab来运行各个任务,随着业务增多,任务的管理变得越来越吃力,体现在以下几方面:

  查看任务的执行时间和进展不方便。每次需要查看某个任务的执行情况时,都要登录到服务器上去查看命令行的执行时间、log在哪里,通过ps来查看当前进程是否在运行等等。

  任务跑失败后,没有通知与重试。

  任务之间的依赖关系无法保证,完全靠预估,然后在crontab里设定执行时间间隔,经常出现上游还没有处理完,下游就启动了,导致脏数据的产生。

  于是,我们开始考虑引入一个任务流管理系统,基本想法是:第一,要能解决上述的问题;第二,最好能与Python友好的兼容,毕竟团队的主要技术栈是Python。经过调研,发现Airflow是当前最适合我们的。Airflow是Airbnb公司开源的一款工作流管理系统,基于Python编写,兼容crontab的schedule设置方法,可以很简单的描述任务之间的逻辑与依赖,并且提供了可视化的WebUI用于任务管理与查看,任务失败时可以设置重试与邮件通知。这里贴一张官方的截图来一睹其风采。

于是,我们开始考虑引入一个任务流管理系统,基本想法是:第一,要能解决上述的问题;第二,最好能与Python友好的兼容,毕竟团队的主要技术栈是Python。经过调研,发现Airflow是当前最适合我们的。Airflow是Airbnb公司开源的一款工作流管理系统,基于Python编写,兼容crontab的schedule设置方法,可以很简单的描述任务之间的逻辑与依赖,并且提供了可视化的WebUI用于任务管理与查看,任务失败时可以设置重试与邮件通知。这里贴一张官方的截图来一睹其风采。

  Airflow有三个重要的概念:DAG、Task和Operator。DAG(directed acyclic graphs),有向无环图,用来表示任务的依赖结构;Task表示一个具体的任务节点;Operator表示某个Task的执行体是什么,比如BashOperator是执行一个Bash脚本,PythonOperator是执行一段python代码等等。使用Airflow,首先要编写对应的任务脚本,通常脚本需要做三件事:第一,描述DAG的属性(比如schedule、重试策略等),第二,描述Task属性(比如Operator是什么),第三,描述Task的依赖情况。进一步的认识可以参考官方文档。

第一,描述DAG的属性(比如schedule、重试策略等),第二,描述Task属性(比如Operator是什么),第三,描述Task的依赖情况。进一步的认识可以参考官方文档。

  用户最了解业务过程和管理上的信息需求,但是由于一些用户素质差,或不了解计算机工作的特点,而提出一些似是而非的需求;有的甚至提出“打字员”的需求,每月底帮着打印表格;有时对同一个问题,不同的用户有不同的提法;有时同一个人对同一个问题也前后提法不一致。

  以上便是现阶段我们的数据仓库发展与建设方法,虽然比较简单,但是目前基本能满足需求。随着数据规模的增长和业务的复杂化,未来还有很多路要走:如何合理的建模?如何有效的利用数据?如何提高数据分析效率? 期待更多的挑战!当然了。

     小结:如果大家经常发送zip文件,但又不打算专门使用由MiniLock生成的公共密钥或者安装特定软件,那么7-Zip文件归档工具可能最符合大家的需求。尽管其主要设计目标在于压缩及解压大型文件与文件夹,但其也会利用256位AES加密机制对各独立文件进行批量加密。

     还有更多详细内容,仅在编程学习网教育,我们期待您的咨询!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

数据仓库建设要点须知

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

数据仓库建设要点须知

中间数据流失,计算结果没有共享。比如在很多数据报告中都会对同一个功能进行数据提取、分析,但是都是各自处理一遍,没有对结果进行共享。编程学习网教育
数据仓库建设要点须知
2024-04-23

数据库与数据仓库设计:关键知识要点,助力数据优化之旅

数据库与数据仓库的设计是数据优化的关键步骤,本文介绍了数据库和数据仓库设计的关键知识要点,并通过演示代码示例帮助读者理解这些要点。
数据库与数据仓库设计:关键知识要点,助力数据优化之旅
2024-02-09

云数据建模:为数据仓库设计数据库

数据建模人员在设计数据仓库和数据集市时必须掌握一些新技巧。尽管其中包含的一些建议可能与您感到舒适的内容相反,但请保持开放的心态。

数仓 | 该如何理解数据仓库的建设

在大数据时代,随着机器学习和人工智能的兴起,这个定义需要做一些补充:数据仓库不只是用于构建支持管理决策的商业智能BI的基础, 也是大量的机器学习和人工智能算法的底层基础之一。

掌控数据世界:数据库与数据仓库设计要点,点亮您的数据管理技能

数据库与数据仓库是数据管理的基石,正确的设计和管理可以优化数据存储、处理和分析。掌握数据库和数据仓库设计要点,点亮您的数据管理技能,助力业务蓬勃发展。
掌控数据世界:数据库与数据仓库设计要点,点亮您的数据管理技能
2024-02-09

聊聊数据仓库建设步骤

在本文中,我们将通过概述数据仓库设计和数据仓库开发步骤的两种基本方法来深入探讨数据仓库实现的细节。

手把手教你数据仓库建设

经过前面一系列的ETL过程(什么是ETL?一文掌握ETL设计过程),我们最终将数据装载到数据仓库中。
数据仓库ETL2024-12-02

浅谈数据仓库建设中的数据建模方法

希望读者能够通过对本文的阅读,同时,结合自己对数据仓库建设的经验,在建设数据仓库的时候能够总结出一套适合自己的建模方法,能够更好的帮助客户去发挥数据仓库的作用。
数据建模2024-12-01

万字详解整个数据仓库建设体系

英文名称为Data Warehouse,可简写为DW或DWH。数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持(Decision Support)。它出于分析性报告和决策支持目的而创建。

递归查询在数据仓库建设中的角色

递归查询在数据仓库建设中扮演着关键的角色,特别是在处理具有层级结构或递归关系的数据时。以下是递归查询在数据仓库建设中的角色介绍:递归查询的定义和作用递归查询是一种在数据库中处理具有层级结构数据的技术。它通过在查询语句中嵌套引用自身,以实
递归查询在数据仓库建设中的角色
2024-09-08

数据分析必须要掌握的数据库与sql基础知识!收藏

在数据分析面试中,有一类知识绝对是面试官重头考察的内容,但是很多人却常常忽略,也就是——数据库与SQL!

穿越数据库与数据仓库设计的迷雾:直达数据管理的制高点

本文将带领读者从数据库与数据仓库设计的迷雾中走出,直达数据管理的制高点,并提供实际演示代码,帮助读者理解和实践数据库与数据仓库的设计。
穿越数据库与数据仓库设计的迷雾:直达数据管理的制高点
2024-02-09

数据管理之星:数据库与数据仓库设计奥秘,点燃数据洞察的盛宴

数据库和数据仓库是数据管理的两个核心概念,了解它们的设计奥秘对于点燃数据洞察的盛宴至关重要。本文将深入探讨数据库和数据仓库的设计原理,并提供一些实用的技巧和演示代码,帮助您构建高效可靠的数据管理系统。
数据管理之星:数据库与数据仓库设计奥秘,点燃数据洞察的盛宴
2024-02-09

得物交易域数据仓库数据质量保障体系建设

数据校验的方式有多种多样,以上只是汇总了数仓测试过程中常用到的一些方法,实际应用中,还需要结合具体的需求,方法选取得当,可以起到事半功倍的效果。个人觉得,数据类测试,非常考验人的耐心,面对繁杂的指标,需要花费更多的时间,静下心来,去不断梳理

数据管理导航:数据库与数据仓库设计必备知识,踏上卓越的征程

数据库与数据仓库是数据管理的两个重要组成部分,它们在数据处理和分析中发挥着至关重要的作用。本文探讨了数据库与数据仓库的设计知识,并提供了一些演示代码,帮助读者更好地理解和掌握这些概念。
数据管理导航:数据库与数据仓库设计必备知识,踏上卓越的征程
2024-02-09

Teradata的数据库设计和建模方法有哪些关键要点

数据建模方法:Teradata的数据库设计和建模方法主要包括概念数据模型、逻辑数据模型和物理数据模型。概念数据模型用于描述业务需求和数据实体之间的关系;逻辑数据模型用于描述数据实体之间的关系以及数据的结构和约束;物理数据模型用于描述数据在数
Teradata的数据库设计和建模方法有哪些关键要点
2024-04-09

OpenHarmony关系型数据库封装前的知识要点

本节仅对RDB数据库的简单使用做了讲解,其中涉及到RdbPredicates、DataSharePredicates、ResultSet相关的更多内容将在后续封装RDB工具类中详细介绍。
RDB数据库2024-11-30

2023年数据库系统工程师重要知识点

  编程学习网软考学院为2023年数据库系统工程师考生整理了2023年数据库系统工程师重要知识点的内容,希望能帮助考生掌握数据库系统工程师的重要知识点。  2023年数据库系统工程师重要知识点由编程学习网软考学院整理,因篇幅有限,本文只展示了部分内容,完整内容请考生点击资料下载查看免费领取10G学习资料。  2023年数据库系
2023年数据库系统工程师重要知识点
2024-04-19

编程热搜

  • Mysql分表查询海量数据和解决方案
    众所周知数据库的管理往往离不开各种的数据优化,而要想进行优化通常我们都是通过参数来完成优化的。那么到底这些参数有哪些呢?为此在本篇文章中编程学习网笔者就为大家简单介绍MySQL,以供大家参考参考,希望能帮助到大家。以上就是关于大数据的知识点了。喜欢的可以分享给你的朋友,也可以点赞噢~更多内容,就在编程学习网!
    Mysql分表查询海量数据和解决方案
  • 大数据的妙用及17年趋势
    2017年,支持大量结构化和非结构化数据的系统将继续增长。市场需要数据平台来帮助数据管理人员管理和保护大数据,同时允许最终用户进行数据分析。这些系统将逐步成熟,在企业内部的IT系统中更好地运行。所以,我们更要了解大数据!互联网普及使得网民的行为更加多元化,通过互联网产生的数据发展更加迅猛,更具代表性。互联网世界中的商品信息、社交媒体中的图片、文本信息以及视频网站的视频信息,互联网世界中的人与人交互信息、位置信息等,都已经成为大数据的最重要也是增长最快的来源。大家都了解到了吗!更多内容就在编程学习网哟
    大数据的妙用及17年趋势
  • 5G大数据时代空降来袭
    欢迎各位阅读本篇文章,本文主要讲了5G大数据时代。如今 5G 概念已不再陌生,按照行业认同的说法:2017年至2018年 5G 将在国内开始有序测试,2019年进行预商用。工信部之前已表示,中国将在2020年启动 5G 商用。编程学习网教育平台提醒各位:本篇文章纯干货~因此大家一定要认真阅读本篇文章哦!
    5G大数据时代空降来袭
  • es详解-原理-从图解构筑对es原理的初步认知
    在学习ElasticSearch原理时,我推荐你先通过官方博客中的一篇图解文章(虽然是基于2.x版本)来构筑对ES的初步认知(这种认识是体系上的快速认知)。ES详解 - 原理:从图解构筑对ES原理的初步认知前言图解ElasticSearch图解LuceneSegmentInverted IndexStored Fiel
    es详解-原理-从图解构筑对es原理的初步认知
  • elasticsearch-wrapperquery
    在工作中遇到ElasticSearch版本升级时出现Java High Level接口变更导致的兼容性问题: 之前使用的是2.4.x,考虑性能和功能的增强,需要更换为6.4.x; 2.4.x中我们使用DSL语句直接查询(数据的不确定性和方便动态建立查询规则等因素),而新的ES Java 高阶API中去掉了相关接口的支持
    elasticsearch-wrapperquery
  • 学习大数据营销思维(下)
    编程学习网: 其实,通过上面的介绍,我们知道苹果通过各类产品与服务销售相互促进以理及薄利多销的方式来盈利第二种战略联盟类型是合作方的共同赢利。苹果公司打造了一个参与方共同受益的业务系统。
    学习大数据营销思维(下)
  • 纯干货:HLS 协议详解及优化技术全面解析
    编程学习网:HLS (HTTP Live Streaming), 是由 Apple 公司实现的基于 HTTP 的媒体流传输协议。他跟 DASH 协议的原理非常类似,通过将整条流切割成一个小的可以通过 HTTP 下载的媒体文件,然后提供一个配套的媒体列表文件给客户端,让客户端顺序地拉取这些媒体文件播放, 来实现看上去是在播放一条流的效果。HLS 目前广泛地应用于点播和直播领域。
    纯干货:HLS 协议详解及优化技术全面解析
  • 关于Python 代码全面分析
    欢迎各位阅读本篇,Python(KK 英语发音:/ˈpaɪθən/)是一种面向对象、直译式计算机程序设计语言。本篇文章讲述了关于Python 代码全面分析。
    关于Python 代码全面分析
  • es详解-原理-es原理之索引文档流程详解
    ElasticSearch中最重要原理是文档的索引和文档的读取,本文带你理解ES文档的索引过程。ES详解 - 原理:ES原理之索引文档流程详解文档索引步骤顺序单个文档多个文档文档索引过程详解整体的索引流程分步骤看数据持久化过程深入ElasticSearch索引文档的实现机制写操作的关键点Lucene的写Elastics
    es详解-原理-es原理之索引文档流程详解
  • 五大“网管”必备的网络数据分析工具
    是不是在为如何分析统计网络数据和流量烦恼呢?想不想监控、运维、排障轻松一些?下面给大家提供一些免费网络分析工具,以帮助大家更好的掌控自己的网络!编程学习网教育
    五大“网管”必备的网络数据分析工具

目录