LOFTER for ipad —— 让兴趣,更有趣

点击下载 关闭

LOFTER-网易轻博

数据处理

376浏览    31参与
研数科技
ljp1981-2004
ljp1981-2004
CDA数据分析师
博客已迁移,请看签名

Kettle常用组件使用教程(入门级二)

直接接到入门级一开始,未观看入门一,请移步观看入门级一

飞机直达:http://lcryblog.lofter.com/post/1e131973_11e346a4


组件:设置值Null


名称:选择替换的字段

需要转换成NULL的值:需要转换成NULL的值

实验八:


如图,自定义常量name,age两个字段,具体值如上,李3两个。

设置值为NULL选择:


执行结果:


----------------------------------------------------------------

组件:执行SQL脚本


数据库连接:选择数据库

SQL script...

直接接到入门级一开始,未观看入门一,请移步观看入门级一

飞机直达:http://lcryblog.lofter.com/post/1e131973_11e346a4


组件:设置值Null


名称:选择替换的字段

需要转换成NULL的值:需要转换成NULL的值

实验八:


如图,自定义常量name,age两个字段,具体值如上,李3两个。

设置值为NULL选择:


执行结果:


----------------------------------------------------------------

组件:执行SQL脚本


数据库连接:选择数据库

SQL script :输入要执行的SQL语句

参数:设置要替换的参数字段

实验九:


如图,自定义两个字段number,nage,具体数据如上

执行SQL脚本选择:


分析:执行插入语句,将自定义数据插入oracle数据表中,两个?的意思作为参数的字段

执行结果:


------------------------------------------------------------------

组件:Java Script代码 


Java Script:脚本的输入

字段名称:定义的字段名

input fields:输入字段

output fields:输出字段

改成为:新的字段名

类型:字段类型

实验十:


如图:自定义三个字段number1,number2,name,具体值如上。

执行Java Script选择:


分析:定义sum字段,将number1和number2相加,定义sumname字段不修改值,修改名为我是改名的方便观察结果。

执行结果:


-----------------------------------------------------------------------------

组件:合并记录


旧数据源:输入数据源

新数据源:输入数据源

匹配关键字段:匹配关键字段

数据字段:数据字段

实验十一:



如图,自定义常量和自定义常量2分别是两个字段no1和no2,具体值如上

注:合并记录一定要先对数据排序,按照一个关键字排序。


我这里就是按照no1排序

合并记录选择:


执行结果:


---------------------------------------------------------------

组件:排序合并


字段名称:选择字段的名称

实验十二:



如图:定义one1,one2两个字段,具体值如上

排序合并选择:


执行结果:


--------------------------------------------------------------------

组件:插入/更新


数据库连接:选择数据库

目标表:选择目标表

不执行任何更新:是否执行更新操作

查询的关键字:关键字

更新字段:选择要插入更新的字段

实验十三:


如图:自定义常量student_name,student_number两个字段,具体值如上

插入/更新选择:


执行结果:


testkettle数据库查询如下:


--------------------------------------------------------------




m15756321504_1

我们该如何解决企业在数据采集中遇到的难题


       摘要:搜索是任何有效的网站或应用程序的关键组件,将用户连接到他们做出决策所需的数据,无论是查找文档,进行研究还是完成在线购买。现代搜索引擎在过去5年中发生了显着的变化,其中包括机器学习和人工智能技术在文档和查询处理的各个方面,以及用户分析和个性化。这些技术需要大量高质量的培训和评估数据才能有效。


       在数据采集方面,由海归技术团队、知名学者、行业精英共同打造的专注于互联网和大数据领域研究与运用的高新技术企业--成都探码科技公司...


       摘要:搜索是任何有效的网站或应用程序的关键组件,将用户连接到他们做出决策所需的数据,无论是查找文档,进行研究还是完成在线购买。现代搜索引擎在过去5年中发生了显着的变化,其中包括机器学习和人工智能技术在文档和查询处理的各个方面,以及用户分析和个性化。这些技术需要大量高质量的培训和评估数据才能有效。


       在数据采集方面,由海归技术团队、知名学者、行业精英共同打造的专注于互联网和大数据领域研究与运用的高新技术企业--成都探码科技公司依托自研强大的大数据技术核心,致力于大数据产业生态链的构建,已在互联网、健康、农业、交通等产业都成功实现了产品运用。


文本数据采集


       探码科技CEO宋学江认为:在新的地理市场中,工作的开发技术要求专家必须能够收集语言数据以及特定于区域的数据。并且为了能够快速渗透新市场,许多公司以及企业都需要一个在各种环境以及各种领域中可以快速升级数据收集项目经验的合作伙伴。


       探码科技依托自研强大的大数据技术核心可以在客户指定的任何领域提供数据收集,例如商家信息,音乐标题,艺术家姓名,缩写和首字母缩略词,食品,运输,计算或地理位置。我们有能力从各种用户人口统计和领域收集各种各样的自然语言文本数据。然后,该数据可用于开发Web或应用程序用户界面,语音交互设备或自动电话系统的提示和语法规范,特定于域名的词典和专业词表。


图像和视频数据收集


       为了使您的基于机器学习的解决方案能够正确识别图像和视频,需要对这些特定数据类型进行足够的训练。虽然公共数据集可用,但通常它们不足以满足您的需求,也没有足够的量来有效地训练算法。


       只有通过与客户密切合作,才能量身开发定制化程序,以满足他们的特定需求,并可以快速招募大批参与者进行数据收集项目。我们可以满足参与者人口统计,背景视觉等多样性的各种要求,我们熟练的项目经理可以确保每个数据收集项目的质量结果。通过这些方法,收集高质量的数据,以提升您的解决方案的规模;收集数百万个高质量的数据样本,来确保您的产品满足全球客户的需求。


语音数据收集


       在自动语音识别系统中,客户需要高质量的语言数据,以确保系统能够在各种环境和环境中理解和响应人类语言。更需要大量的数据来有效地训练机器学习模型。


      利用端到端语音数据收集服务提供了效率和质量,即使是并行的多个大型收藏。


我们的服务包括

  • 电话

  • 嵌入式设备

  • 单/多扬声器

  • 迅速变化

  • 言语模式

  • 文本语料库等资源


作为标准系列的一部分,我们为您提供:

  • 详细的语言和文化研究

  • 脚本准备和本地化

  • 母语人群众多

  • 本地和远程语音录音

  • 收集数据的转录和注释

  • 质量保证和项目管理

  • 符合数据库内容的词典条目


本文转自探码科技官网:http://www.tanmer.com/bigdata/283

compbio94

Pandas(data analysis)

作者:compbio94
powerful Python data analysis toolkit,pandas是一种实用的数据处理工具,提供大量的数据结构和函数处理数据。

我想找一份数据处理的实习,之前在中科院植物园做过一份类似的工作,但是由于当时没有学好,导致我大部分是使用Excel完成的,pandas提供三种数据结构,广播机制,对齐功能,唯一化功能为数据处理提供了大量的函数。

zlfenjoy
拖延的惩罚,为了两个简单的数据...

拖延的惩罚,为了两个简单的数据分析熬到了这个点,真是眼王(。ŏ_ŏ)

拖延的惩罚,为了两个简单的数据分析熬到了这个点,真是眼王(。ŏ_ŏ)

数控小J

数据驱动业务——梦想成真,只差一步

长久以来,作为在信息管理领域服务多年的IBM人,就一直有个梦想:当业务人员需要分析公司的经营状况时,当市场部需要在特定时间做精准营销时,当老总紧急临时需要某条业务线的汇总数据时,我们可以有个系统马上及时、准确提供数据,漂亮美观地满足各种需求,实现数据驱动业务的目标!我们长久向往超市的模式:需要买东西的顾客轻松自在地在宽敞、整洁的货架上自由选择,当选择结束后,自行去收银台结账付款,需求满足、货品组合完全由顾客自主完成!超市员工所要做的就是整理货架、安排新货品、设计新的商品组合......

好吧,我们先设定一个小目标:

在经典的数据分析场景中,我们需要至少4类人员参与,分别是业务分析师、数据工...

长久以来,作为在信息管理领域服务多年的IBM人,就一直有个梦想:当业务人员需要分析公司的经营状况时,当市场部需要在特定时间做精准营销时,当老总紧急临时需要某条业务线的汇总数据时,我们可以有个系统马上及时、准确提供数据,漂亮美观地满足各种需求,实现数据驱动业务的目标!我们长久向往超市的模式:需要买东西的顾客轻松自在地在宽敞、整洁的货架上自由选择,当选择结束后,自行去收银台结账付款,需求满足、货品组合完全由顾客自主完成!超市员工所要做的就是整理货架、安排新货品、设计新的商品组合......

好吧,我们先设定一个小目标:

在经典的数据分析场景中,我们需要至少4类人员参与,分别是业务分析师、数据工程师、应用开发员以及数据科学家。

分析过程需要业务分析师提需求,数据工程师整理数据和按照一定原则设计数据组合,然后数据科学家按照业务的理解设计合适的数学模型以及验证其合理性,最后由应用开发员把一切变成最终业务分析人员使用的应用。

我们今天提供这么一个应用(假设原型)吧:我们姑且称之为数据集市

今天业务分析师打开以上界面,可以通过关键字查找有没有她想要的数据。或者根据她登录的用户行为分析,自动推荐相应的数据集给她,又或说和她相关岗位的人经常在查找某某数据集...(这不是在网购吗?)

当业务员打开某个她想要的数据集:

她发现这个数据集的提供方是财务部、有信息概览、有详细字段介绍、有样例数据查看。哦,最关键的还有评分!它的质量如何?它的变更历史是怎样,还有其它使用用户的评论!最后她又发现,天啊:还有派生出来的集合、应用的场景以及在这个数据集合上设定好的模型。(详细的菜谱以及好味的魔法!)

是否你想大叫了:这就是我想要的!

IBM变了,我们也在研究"设计思维”,用户的想法,就是我们产品设计的出发点。历时两年的研发,我们离这个目标越来越近!积沙成塔,我们提供的下一代数据分析平台DataWorks即将完型!

这个平台一次性满足你的需求:

1、基于云的架构 - 满足用户海量数据分析的需求,你再也不需要担心有朝一日业务急剧扩展的IT瓶颈限制 ;当然,它也兼顾与你的私有数据中心技术互通有无!

2、开源 - 互联网的时代,强调的是共享经济,这里有你想要的所有开源软件的实现,IBM除了拿来所用,还积极贡献!我们是Spark 2.0 ML的第一贡献公司;

3、敏捷迭代 - 速度是想法到实现、推广的最重要原则,我们支持你先尝试验证一小步,从1000个点子中找到可能的100个实现,最后助你将10个变成企业级的部署!

今天,对于不同角色的用户,你可以单独体验我们的实现。

例如你是数据工程师,你需要每天整理数据集市货架的数据或新上数据产品,我们提供了工具: Forge

你不需要安装对应的软件,主要工作放在分析数据质量,对应整理、匹配类型就好了!

若你是业务分析师,你试试把数据集市里面找到的数据,扔到Watson Anaytics 里面,让IBM的认知技术帮你问问题,帮你自动生成炫丽报表:

对于你是数据科学家,我们即将推出:Data Science Experience (数据科学家体验中心) http://ibm.com/datascience

这个平台可以实现学习、创建以及分享的一站式数据科学家体验,我们拭目以待!

你是开发员?没有忘记你,快上BlueMix,尝试使用IBM大数据分析服务吧!里面有无数的案例,一键式从GitHub部署到BlueMix平台运行,你会体验到极速的敏捷开发!开发应用是如此的简单,再也不用求着系统管理员装环境了,需要的各种高大上服务:语音识别、图像识别、数据存储、海量数仓、天气数据、机器挖掘甚至区块链等,分钟级可得!

更多大数据与分析相关行业资讯、解决方案、案例、教程等请点击查看>>>

详情请咨询在线客服

客服热线:023-66090381

数控小J

Hadoop 信息集成平台,让大数据分析更简单!

就本身而言,Hadoop 不是很有用的东西,原因是它需要编写大量复杂和定制的程序代码,难以治理,也没有数据质量概念和数据治理可谈了。企业用户都忙于去研究如何解决使用 Hadoop 所碰到的问题,主要是涉及到项目实施时间、成本和风险等,而 Hadoop 自身的客户化编程就增加了项目实施时间、成本和风险。

大数据项目实施仅靠 Hadoop 是不会成功的,除非你能有效地做好大数据集成这部分的工作,所以,大数据集成对 Hadoop 系统的初期建设来说就变得非常重要。 大部分 Hadoop 系统初期建设仅是侧重于“无价值的数据折腾进来,无价值的数据折腾出去”,考虑着在 Hadoop...

就本身而言,Hadoop 不是很有用的东西,原因是它需要编写大量复杂和定制的程序代码,难以治理,也没有数据质量概念和数据治理可谈了。企业用户都忙于去研究如何解决使用 Hadoop 所碰到的问题,主要是涉及到项目实施时间、成本和风险等,而 Hadoop 自身的客户化编程就增加了项目实施时间、成本和风险。

大数据项目实施仅靠 Hadoop 是不会成功的,除非你能有效地做好大数据集成这部分的工作,所以,大数据集成对 Hadoop 系统的初期建设来说就变得非常重要。 大部分 Hadoop 系统初期建设仅是侧重于“无价值的数据折腾进来,无价值的数据折腾出去”,考虑着在 Hadoop 系统在处理大数据量情况下,是否能够可以更快些、成本更低些?IBM 研究发现,只有在大数据集成这部分任务实施成功,才能解决 Hadoop 系统有效性问题,是值得大家去重点地关注。

目前,仅有 IBM 能在帮助全球的客户通过大数据集成和治理,把 Hadoop Swamp(沼泽)转变成 Hadoop Lake (湖)这部分工作做得最优秀。

IBM解决方案说明

IBM 为 IBM BigInsights 在内的 Apache Hadoop 系统提供了数据集成(InfoSphere Data Integration)和数据质量治理(InfoSphere Data Quality)解决方案,以帮助客户建设一个真正有用和高效的 Hadoop 平台系统。

1. InfoSphere Data Integration

  • 按照各种需求在不同的源和目标之间整合与转换数据,强大运行扩展性满足很复杂的转换需求;

  • 转换和汇聚任何的数据量,数百种内置转换控件和函数,基于元数据驱动的技术和产品,大大地提升团队协作能力;

  • 通过基于Web浏览器仪表盘来快速地监控管理运行环境,管理好你的数据转换以满足业务要求;

  • 任性地运行在任何地方,无论是传统的 Unix、Linux、Windows操作系统,还是新兴的 Apache Hadoop系统。这些活儿,都是不容易做到呀!

2. InfoSphere Data Quality

  • 分析:利用源数据分析了解您的问题,自动发现关键数据和隐藏的数据关系。

  • 清洗:分析、标准化、匹配、存留数据,最大范围地定制出适合你的解决方案。

  • 监控数据质量:在任意位置和跨系统的访问,都能监控到你的数据质量(数据库或数据流),通过独一无二的功能去优化数据质量指标,从而满足业务与治理目标。

IBM解决方案重点

  • 针对 Hadoop 平台而发布的 Data Integration 和 Data Quality 解决方案,还有 BigMatch for Hadoop、BigSQL、BigSheet 这几个“铁哥们”一起去打天下。

  • 迎合科技潮流 DataLake 发展方向,能全面地解决把任何 Hadoop 数据进行分发和推送所遇到的问题,是一个能提供管理和人见人爱的软件解决方案。

IBM解决方案价值

  • IBM 独有价值:拥有先进技术,并成为市场领导者。

  • 自然运行在 Hadoop 平台上,提供强大的数据转换处理和数据质量提升的可扩展的引擎处理能力,还无需要编写那怕是一行的程序代码,让技术人员爽歪歪。

  • 基于 Hadoop 平台上的整体解决方案级别,让你能更了解每条数据记录,洞察埋藏在信息中的奥秘。

  • 是 IBM BigInsight Hadoop 平台加速器,还能在其他 ODP(Open Data Platform)平台系统上分发数据,并提供 Big SQL、Big Sheets、BigMatch 等武器装备。

  • 目前在技术水平上,IBM 数据处理速度和扩展能力还没有对手能够超越,真正是一个面向企业级用户的大数据信息集成与治理解决方案。

  • 为大数据生态环境提供了最佳的配套软件工具,并遵循 ODP 规范,四海之内皆兄弟,无论是多大数据量、多复杂、多变化的数据,都能全面和高效地集成。

哇!当你把在 Hadoop 平台上搞信息集成的重点内容都搞清楚后,就可马上进入高效的大数据世界,叹世界啦!

更多大数据与分析相关行业资讯、解决方案、案例、教程等请点击查看>>>

详情请咨询在线客服

客服热线:023-66090381

数控小J

大数据环境下的多维分析技术

引言

之前我们有一篇文章《一文读懂多维分析技术(OLAP)的进化过程》为大家介绍了多维分析技术(即联机分析处理(On-Line Analytical Processing),简称OLAP)的前世今生及发展方向。正是由于多维分析技术在业务分析系统的核心功能中的不可替代性,随着商业智能系统的深入应用,分析系统的数据量呈指数级增长,原有依赖硬盘IO处理性能(包括传统数据库、多维立方体文件)的多维分析技术遭遇到性能瓶颈。与此同时,随着服务器内存价格的下降,一种新的基于内存的OLAP技术架构出现了。这种新架构既能够保证类似于MOLAP方式的高性能,也能基于更大的数据量进行分析,还不用定期将数据库里的数...

引言

之前我们有一篇文章《一文读懂多维分析技术(OLAP)的进化过程》为大家介绍了多维分析技术(即联机分析处理(On-Line Analytical Processing),简称OLAP)的前世今生及发展方向。正是由于多维分析技术在业务分析系统的核心功能中的不可替代性,随着商业智能系统的深入应用,分析系统的数据量呈指数级增长,原有依赖硬盘IO处理性能(包括传统数据库、多维立方体文件)的多维分析技术遭遇到性能瓶颈。与此同时,随着服务器内存价格的下降,一种新的基于内存的OLAP技术架构出现了。这种新架构既能够保证类似于MOLAP方式的高性能,也能基于更大的数据量进行分析,还不用定期将数据库里的数据刷新到OLAP服务器来防止数据过期。这种新的体系架构当之无愧地成为大数据环境下搭建多维分析功能的流行选择,而IBM Cognos的Dynamic Cubes就是它的代表作。

动态立方体(Dynamic Cubes)作为一种新的技术架构最先应用在Cognos的10.2.0版本。下面我们以Cognos的11.0版本来看看怎样对动态立方体进行性能调优。

影响因素

动态立方体是以原有ROLAP技术为基础,使用服务器内存作缓存的一种新型技术架构。它的响应性能的影响因素包括。

数据仓库(数据集市):由于DynamicCubes的事实表数据都存储在数据仓库中,因此,有时数据仓库的性能好坏会影响前端多维分析查询的响应速度。在数据仓库的多维数据模型中,需要注意:

  • 维表中的连接事实表的代理键的数据类型应该采用integer类型

  • 维表中的各个层级的层级键的数据类型应该采用integer类型

2.数据库:提高数据库的查询性能,有助于提高最终多维分析展现的响应速度。

  • 有时候多维分析的性能严重依赖于数据库运行大数据量多任务查询任务的性能

  • 数据库基于的硬件资源(内存、CPU及IO)应该考虑到大数据量并行查询的性能,因此基于物理机的数据库性能当然比基于虚拟机的更优

  • 尽量少用或者不用视图,因为视图的数据不是物理存在的

  • 最好采用分析型的MPP数据库,因为多维分析都是针对大数据量的汇总查询

  • 采用列存储技术的数据库对于大量并发并联查询性能更优

  • 要确保查询性能最优化,可以通过数据库的性能分析监控、执行计划分析等工具

  • 索引的设计,对于非MPP数据库,索引的设计对于查询性能影响很大

动态立方体性能调优

1.由于动态立方体使用机器内存和CPU进行性能增强,所以在对应用服务器的硬件进行评估时应该为将来的性能扩展留一定的预留空间。硬件评估可以通过Cognos提供的建模工具Cube Designer里的“评估硬件需求”功能初步估算。如下图所示。

2.在多维立方体模型设计时,使用模型验证功能,可以知道影响性能的问题所在。可能的问题有:连接字段类型、星形模型与雪花模型、过滤器的使用、视图的使用等等。如下图所示。

3.评估模型的复杂度。如果多维模型的维度和度量很多,数据量也很大,可以通过设计聚合表或者聚合内存来提升查询性能。动态立方体会通过聚合感知技术找到最合适的聚合数据集进行查询以提高查询性能。如下图所示。

4.JVM设置。动态立方体使用Java虚拟机作为内存管理的容器载体,所以Cognos也提供了一些JVM堆设置来优化数据查询性能。你可以在Cognos Administration界面上找到Query Service服务进行参数调整。如下图所示。

5.您还可以通过Cognos的Dynamic Query Analyzer (DQA)工具来对动态立方体的查询性能进行评估并得到优化建议。在进行评估之前,记得将Dynamic Cubes的工作日志打开,如下图所示。

结束语

如需了解更多,请猛击以下链接,发现惊喜!

http://bigdata.evget.com/

更多大数据与分析相关行业资讯、解决方案、案例、教程等请点击查看>>>

详情请咨询在线客服

客服热线:023-66090381

数控小J

备份恢复、多租户,样样都不能少 -- 谈谈BigInsights企业管理模块的作用

作为企业级大数据平台,各厂商在集成开源技术的同时,也会在其基础之上发展各种针对性的技术,满足企业各方面的需求。下面我们就简要给大家介绍IBM在BigInsights大数据平台中,针对企业的备份恢复、多租户等需求所进行的一系列扩展。

文件系统的扩展(Spectrum Scale)

说到文件系统的扩展,肯定很对人会有这样的疑问:“什么?Hadoop的基础之一就是HDFS,企业级大数据平台会把这个基础也改了吗?”。自然HDFS作为Hadoop中的基础模块,其重要性不言自明。然而作为开源的组件,在企业级应用中很难达到企业及应用的要求,例如数据备份和数据加密,直到Hadoop2.6出现之后,HDFS...

作为企业级大数据平台,各厂商在集成开源技术的同时,也会在其基础之上发展各种针对性的技术,满足企业各方面的需求。下面我们就简要给大家介绍IBM在BigInsights大数据平台中,针对企业的备份恢复、多租户等需求所进行的一系列扩展。

文件系统的扩展(Spectrum Scale)

说到文件系统的扩展,肯定很对人会有这样的疑问:“什么?Hadoop的基础之一就是HDFS,企业级大数据平台会把这个基础也改了吗?”。自然HDFS作为Hadoop中的基础模块,其重要性不言自明。然而作为开源的组件,在企业级应用中很难达到企业及应用的要求,例如数据备份和数据加密,直到Hadoop2.6出现之后,HDFS中才开始正式加入数据加密模块并且还在不断完善中。其实,现行各种不同的文件系统都具有各自的特色,适用于不同的企业应用场景,如ClusterFS就是Mac系统中使用的文件系统,具有良好的数据压缩特性。

从上表可看出,除了IBM,其他业界主流的大数据厂商也在企业级大数据产品中使用了扩展自HDFS的文件系统,如MapR扩展文件系统可提供全读写操作等。IBM在BigInsights中,在HDFS基础之上集成了来自于GPFS的各项成熟技术,使得大数据平台能满足更多企业级需求,其主要特点举例如下:

1. Hadoop兼容:

BigInsigths扩展文件系统由于实现了HDFS文件系统的全部接口,对于Hadoop生态圈中的所有其他组件可以实现完全兼容,这意味着不管是Hive还是HBASE等,所有对HDFS有依赖的组件都可以无缝运行在BigInsights扩展文件系统之上。

2. 全POSIX文件接口:

POSIX(PortableOperating System Interface)是Linux/UNIX广泛使用的文件系统接口,BigInsights扩展文件系统在Hadoop之上完全实现了POSIX接口,可以比HDFS实现更多、更便捷的功能,如下面例子所示。

实现跨文件系统的文件拷贝,不用选择麻烦的参数,提高了操作便捷程度:

移动文件时,可以使用相对路径,缩短了命令的长度,更加简洁方便了:

还可以使用系统工具,使得处理文件更方便了:

3. 数据备份:

很多企业客户,很重视数据的备份和恢复需求,而HDFS默认的备份方式是通过dstcp将文件备份到另外一个HDFS中。这意味着很多企业客户中现有的各种备份策略、备份设备没有办法发挥作用,在成本、管理各方面都带来很大的挑战。而BigInsights扩展之后的文件系统,可支持各种传统的备份方式,包括把数据备份到磁带设备等:

资源调度的扩展

Hadoop 2.X之后的版本中,Yarn的使用为Hadoop的资源管理、任务调度能力带来飞速提升。然而开源社区中自带的几种调度方式FIFO、Fair(公平调度)、Capacity(资源能力调度)有较大局限使用场景有限,如都不支持基于时间控制的调度策略,FIFO和Capacity不支持任务抢占等等。

BigInsights中扩展的调度器在这方面也是进行了有效的扩展。

我们来假设这样一个应用场景:

某企业经过巨大的人力和物力的投入,搭建了一套大数据平台,并希望同一个平台可以同时承载多个部门的服务,实现多工作负载并可以根据需要灵活调整资源配置(即多租户需求)。对平台提出的要求是:在正常工作日时间段,平台优先保证业务部门的在线数据分析任务,而在非工作日时间段,例如周末、节假日等,可以全力支持后台的批处理任务,以保证在指定时间窗口内完成批量任务;然而在有特殊业务要求时,如针对审计进行数据核查等,还需要动态调整批任务的资源占用参数,优先完成数据核查任务。

这样的场景使用开源HDFS中的默认调度器是很难实现的,原因是HDFS不支持动态调整资源调度策略,任何资源调度策略的更改都必须后台修改参数然后重启,这会带来业务中断并且无法通过自动调整的方式完成。而BigInsights扩展调度器可以很好的支持这样的应用场景,能满足多用户、混合负载时资源调度的动态调整。

本文中我们简单对BigInsights企业级管理模块的功能进行简要介绍,如果您想了解针对企业级应用场景BigInsights还做了哪些细致的扩展,请访问下面链接:

http://bigdata.evget.com/product/385.html

更多大数据与分析相关行业资讯、解决方案、案例、教程等请点击查看>>>

详情请咨询在线客服

客服热线:023-66090381

The Nine

delphi编写的载封包

在Windows XP,D7编译测试通过

HOOK.DLL源码

library HOOK;

{ Important note about DLL memory management: ShareMem must be the

  first unit in your library's USES clause AND your project's (select

  Project-View Source) USES clause if your DLL exports any procedures or

  functions that pass...

在Windows XP,D7编译测试通过

HOOK.DLL源码

library HOOK;

{ Important note about DLL memory management: ShareMem must be the

  first unit in your library's USES clause AND your project's (select

  Project-View Source) USES clause if your DLL exports any procedures or

  functions that pass strings as parameters or function results. This

  applies to all strings passed to and from your DLL--even those that

  are nested in records and classes. ShareMem is the interface unit to

  the BORLNDMM.DLL shared memory manager, which must be deployed along

  with your DLL. To avoid using BORLNDMM.DLL, pass string information

  using PChar or ShortString parameters. }


uses

SysUtils,

windows,

Messages,

APIHook in 'APIHook.pas';

type

PData = ^TData;

TData = record

Hook: THandle;

Hooked: Boolean;

end;

var

DLLData: PData;

{------------------------------------}

{过程名:HookProc

{过程功能:HOOK过程

{过程参数:nCode, wParam, lParam消息的相

{ 关参数

{------------------------------------}

procedure HookProc(nCode, wParam, lParam: LongWORD);stdcall;

begin

if not DLLData^.Hooked then

begin

HookAPI;

DLLData^.Hooked := True;

end;

//调用下一个Hook

CallNextHookEx(DLLData^.Hook, nCode, wParam, lParam);

end;

{------------------------------------}

{函数名:InstallHook

{函数功能:在指定窗口上安装HOOK

{函数参数:sWindow:要安装HOOK的窗口

{返回值:成功返回TRUE,失败返回FALSE

{------------------------------------}

function InstallHook(SWindow: LongWORD):Boolean;stdcall;

var

ThreadID: LongWORD;

begin

Result := False;

DLLData^.Hook := 0;

ThreadID := GetWindowThreadProcessId(sWindow, nil);

//给指定窗口挂上钩子

DLLData^.Hook := SetWindowsHookEx(WH_GETMESSAGE, @HookProc, Hinstance, ThreadID);

if DLLData^.Hook > 0 then

Result := True //是否成功HOOK

else

exIT;

end;

{------------------------------------}

{过程名:UnHook

{过程功能:卸载HOOK

{过程参数:无

{------------------------------------}

procedure UnHook;stdcall;

begin

UnHookAPI;

//卸载Hook

UnhookWindowsHookEx(DLLData^.Hook);

end;

{------------------------------------}

{过程名:DLL入口函数

{过程功能:进行DLL初始化,释放等

{过程参数:DLL状态

{------------------------------------}

procedure MyDLLHandler(Reason: Integer);

var

FHandle: LongWORD;

begin

case Reason of

DLL_PROCESS_ATTACH:

begin //建立文件映射,以实现DLL中的全局变量

FHandle := CreateFileMapping($FFFFFFFF, nil, PAGE_READWRITE, 0, $ffff, 'MYDLLDATA');

if FHandle = 0 then

if GetLastError = ERROR_ALREADY_EXISTS then

begin

FHandle := OpenFileMapping(FILE_MAP_ALL_ACCESS, False, 'MYDLLDATA');

if FHandle = 0 then Exit;

end else Exit;

DLLData := MapViewOfFile(FHandle, FILE_MAP_ALL_ACCESS, 0, 0, 0);

if DLLData = nil then

CloseHandle(FHandle);

end;

DLL_PROCESS_DETACH:

begin

if Assigned(DLLData) then

begin

UnmapViewOfFile(DLLData);

DLLData := nil;

end;

end;

end;

end;

{$R *.res}

exports

InstallHook, UnHook, HookProc;

begin

DLLProc := @MyDLLHandler;

MyDLLhandler(DLL_PROCESS_ATTACH);

DLLData^.Hooked := False;

end.

'APIHook.pas'源码

unit APIHook;

interface

uses

SysUtils,

Dialogs,

Windows, WinSock;

type

//要HOOK的API函数定义

TSockProc = function (s: TSocket; var Buf; len, flags: Integer): Integer; stdcall;

PJmpCode = ^TJmpCode;

TJmpCode = packed record

JmpCode: BYTE;

Address: TSockProc;

MovEAX: Array [0..2] of BYTE;

end;

//--------------------函数声明---------------------------

procedure HookAPI;

procedure UnHookAPI;

procedure SaveInfo(var buf); stdcall;

function recvout(var Rbuf;RLen:Integer):Integer;

var

OldSend, OldRecv: TSockProc; //原来的API地址

JmpCode: TJmpCode;

OldProc: array [0..1] of TJmpCode;

AddSend, AddRecv: pointer; //API地址

TmpJmp: TJmpCode;

ProcessHandle: THandle;

implementation

procedure SaveInfo(var buf); stdcall;

var

  f: file;

  FileName:string;

begin

  {保存为文件信息}

  FileName:='c:\test.txt';

  assignfile(f, FileName);

  closefile(f);

end;

function recvout(var Rbuf;RLen:Integer):Integer;

Var

buf1:pchar;

i:integer;

ss:string;

Begin

buf1:=@Rbuf;

for i:=1 to Rlen do

    Begin

      ss:=ss+inttohex(byte(buf1^),2)+' ';

      buf1:=buf1+1;

    End;

ShowMessage('封包内容[16进制]:'+ss);

ShowMessage('发送封包长度:'+inttostr(Rlen));

End;

{---------------------------------------}

{函数功能:Send函数的HOOK

{函数参数:同Send

{函数返回值:integer

{---------------------------------------}

function MySend(s: TSocket; var Buf; len, flags: Integer): Integer; stdcall;

var

dwSize: cardinal;

begin

//这儿进行发送的数据处理

MessageBeep(1000); //简单的响一声

recvout(Buf,len);

//SaveInfo(Buf);

//调用直正的Send函数

WriteProcessMemory(ProcessHandle, AddSend, @OldProc[0], 8, dwSize);

Result := OldSend(S, Buf, len, flags);

JmpCode.Address := @MySend;

WriteProcessMemory(ProcessHandle, AddSend, @JmpCode, 8, dwSize);

end;

{---------------------------------------}

{函数功能:Recv函数的HOOK

{函数参数:同Recv

{函数返回值:integer

{---------------------------------------}

function MyRecv(s: TSocket; var Buf; len, flags: Integer): Integer; stdcall;

var

dwSize: cardinal;

begin

//这儿进行接收的数据处理

MessageBeep(1000); //简单的响一声

//调用直正的Recv函数

WriteProcessMemory(ProcessHandle, AddRecv, @OldProc[1], 8, dwSize);

Result := OldRecv(S, Buf, len, flags);

JmpCode.Address := @MyRecv;

WriteProcessMemory(ProcessHandle, AddRecv, @JmpCode, 8, dwSize);

end;

{------------------------------------}

{过程功能:HookAPI

{过程参数:无

{------------------------------------}

procedure HookAPI;

var

DLLModule: THandle;

dwSize: cardinal;

begin

ProcessHandle := GetCurrentProcess;

DLLModule := LoadLibrary('ws2_32.dll');

AddSend := GetProcAddress(DLLModule, 'send'); //取得API地址

AddRecv := GetProcAddress(DLLModule, 'recv');

JmpCode.JmpCode := $B8;

JmpCode.MovEAX[0] := $FF;

JmpCode.MovEAX[1] := $E0;

JmpCode.MovEAX[2] := 0;

ReadProcessMemory(ProcessHandle, AddSend, @OldProc[0], 8, dwSize);

JmpCode.Address := @MySend;

WriteProcessMemory(ProcessHandle, AddSend, @JmpCode, 8, dwSize); //修改Send入口

ReadProcessMemory(ProcessHandle, AddRecv, @OldProc[1], 8, dwSize);

JmpCode.Address := @MyRecv;

WriteProcessMemory(ProcessHandle, AddRecv, @JmpCode, 8, dwSize); //修改Recv入口

OldSend := AddSend;

OldRecv := AddRecv;

end;

{------------------------------------}

{过程功能:取消HOOKAPI

{过程参数:无

{------------------------------------}

procedure UnHookAPI;

var

dwSize: Cardinal;

begin

WriteProcessMemory(ProcessHandle, AddSend, @OldProc[0], 8, dwSize);

WriteProcessMemory(ProcessHandle, AddRecv, @OldProc[1], 8, dwSize);

end;

end.

测试代码

procedure TForm1.Button1Click(Sender: TObject);

var

  MOduleHandle:THandle;

  TmpWndHandle:THandle;

begin

  TmpWndHandle:=0;

  //TmpWndHandle:=FindWindow('IEFrame', nil);

  TmpWndHandle:=FindWindowA(nil,'《风云online》');

 

  if not IsWindow(TmpWndHandle) then

  begin

    MessageBox(Self.Handle,'没有找到窗口','!!',MB_OK);

    Exit;

  end;

  MOduleHandle:=LoadLibrary('HOOK.dll');

  @InstallHook:=GetProcAddress(MOduleHandle,'InstallHook');

  @UnHook:=GetProcAddress(MOduleHandle,'UnHook');

  if InstallHook(FindWindowA(nil,'《风云online》')) then

  ShowMessage('Hook OK');

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

UnHook;

end;

188808881

皮尔逊相关系数(Pearson Correlation Coefficient)

以上三个公式都是Pearson相关系数计算公式。

 

一个具体的计算的例子:
X Y
1 2
2 5
3 6


而利用matlab计算:函数 corrcoef

例如:

help corrcoef

x = randn(30,4); % Uncorrelated data
x(:,4) = sum(x,2); % Introduce correlation.
[r,p] = corrcoef(x) % Compute sample correlation and p-values.
[i,j] = find(p<0.05); % Find significant correlations...

皮尔逊相关系数(Pearson Correlation Coefficient) - 188808881 - 伟大的事业,属于伟大的人民

以上三个公式都是Pearson相关系数计算公式。

 

一个具体的计算的例子:
X Y
1 2
2 5
3 6

皮尔逊相关系数(Pearson Correlation Coefficient) - 188808881 - 伟大的事业,属于伟大的人民

而利用matlab计算:函数 corrcoef

例如:

help corrcoef

x = randn(30,4); % Uncorrelated data
x(:,4) = sum(x,2); % Introduce correlation.
[r,p] = corrcoef(x) % Compute sample correlation and p-values.
[i,j] = find(p<0.05); % Find significant correlations.
[i,j] % Display their (row,col) indices.

r =
1.0000 -0.3566 0.1929 0.3457
-0.3566 1.0000 -0.1429 0.4461
0.1929 -0.1429 1.0000 0.5183
0.3457 0.4461 0.5183 1.0000

p =
1.0000 0.0531 0.3072 0.0613
0.0531 1.0000 0.4511 0.0135
0.3072 0.4511 1.0000 0.0033
0.0613 0.0135 0.0033 1.0000

ans =
4 2
4 3
2 4

3 4

r(i,j)就表示x(:,i)和x(:,j)的相关系数.

相关系数r的值介于–1与+1之间,即–1≤r≤+1。其性质如下:

1.当r>0时,表示两变量正相关,r<0时,两变量为负相关。
2.当|r|=1时,表示两变量为完全线性相关,即为函数关系。
3.当r=0时,表示两变量间无线性相关关系。
4.当0<|r|<1时,表示两变量存在一定程度的线性相关。且|r|越接近1,两变量间线性关系越密切;|r|越接近于0,表示两变量的线性相关越弱。
一般可按三级划分:|r|<0.4为低度线性相关;0.4≤|r|<0.7为显著性相关;0.7≤|r|<1为高度线性相关。


 
188808881

拉依达准则(3σ准则)

设对被测量进行等精度测量,独立得到x1,x2...,xn,算出其算术平均值x及剩余误差vi=xi-x(i=1,2,...,n),并按贝塞尔公式算出标准误差σ,若某个测量值xb的剩余误差vb(1<=b<=n),满足下式

|vb|=|xb-x|>3σ

则认为xb是含有粗大误差值的坏值,应予剔除。

在整理试验数据时,往往会遇到这样的情况,即在一组试验数据里,发现少数几个偏差特别大的可疑数据,这类数据称为Outlier或Exceptional Data,他们往往是由于过失误差引起。

对于可疑数据的取舍要慎重。在试验进行中时,若发现异常数据,应立即停止试验,分析原因并及时纠正错...

设对被测量进行等精度测量,独立得到x1,x2...,xn,算出其算术平均值x及剩余误差vi=xi-x(i=1,2,...,n),并按贝塞尔公式算出标准误差σ,若某个测量值xb的剩余误差vb(1<=b<=n),满足下式

|vb|=|xb-x|>3σ

则认为xb是含有粗大误差值的坏值,应予剔除。

在整理试验数据时,往往会遇到这样的情况,即在一组试验数据里,发现少数几个偏差特别大的可疑数据,这类数据称为Outlier或Exceptional Data,他们往往是由于过失误差引起。

对于可疑数据的取舍要慎重。在试验进行中时,若发现异常数据,应立即停止试验,分析原因并及时纠正错误;当为试验结束后时,应先找原因,在对数据进行取舍。如发现生产(施工)、试验过程中,有可疑的变异时,该测量值则应予舍弃。


这类数据的不能清楚地判定原因时,可以借助一些统计方法进行验证处理,方法很多,

如常用的

1."拉依达准则"和"格拉布斯准则",还有如

2.狄克逊准则,

3.肖维勒准则、

4.t检验法,

5.F检验法等。

这些方法,都有各自的特点,例如,拉依达准则不能检验样本量较小(显著性水平为0.1时,n必须大于10)的情况,格拉布斯准则则可以检验较少的数据。在国际上,常推荐格拉布斯准则和狄克逊准则。


但对于异常数据一定要慎重,不能任意的抛弃和修改。往往通过对异常数据的观察,可以发现引起系统误差的原因,进而改进过程和试验。

B612小曼君
数据 拟合 predict

数据 拟合 predict


数据 拟合 predict

 

鲸鱼笔记-好记性不如烂笔头

Q:Excel 如何批量删除空白行?

A:打开要编辑的电子表格,全选数据区域,F5 打开定位 -> 定位条件 -> 选"空值"  -> 删除 -> 删除菜单中选中下方单元格上移

A:打开要编辑的电子表格,全选数据区域,F5 打开定位 -> 定位条件 -> 选"空值"  -> 删除 -> 删除菜单中选中下方单元格上移

zhangyanxia2008

R正则表达式

-----转义字符(元字符)

.                 任意单个字符,除\n

[ ]               选择方括号中的任意一个,如[a-z]表示任意一个小写字符

^               放在表达式开始,表示匹配文本开始位置

$                匹配输...

-----转义字符(元字符)

.                 任意单个字符,除\n

[ ]               选择方括号中的任意一个,如[a-z]表示任意一个小写字符

^               放在表达式开始,表示匹配文本开始位置

$                匹配输入字符串的结束位置

                  放在方括号内[^],表示非方括号内的任一字符

{n}              匹配确定的n次

{n,}             至少匹配n次 

{n,m}          最少匹配n次,最多匹配m次 

|                 可选项,即|前后的表达式各选一个

\                 换码符号

 *                匹配前面的子表达式零次或多次

?               匹配前面的子表达式零次或一次

 +               匹配前面的子表达式一次或多次

\b               匹配单词边界,即单词和空格间的位置,如never中er

\B               匹配非单词边界

\d               数字字符

\D              非数字字符

\f                换页符

\n               换行符

\r                回车符

\s               空白字符,如空格、制表符、换页符等

\S               非空白字符

\t                制表符

\v               垂直制表符

\w               包括下划线在内的任何单词字符。《=》 [A-Za-z0-9_]


-----案例

^[a-zA-Z0-9_]{1,}$     所有包含一个以上的字母、数字或下划线的字符串     《=》^[a-zA-Z0-9_]+$

^[0-9]{1,}$                 所有的正数          《=》^[0-9]+$

^-{0,1}[0-9]{1,}$         所有的整数          《=》^-?[0-9]+$ 

^-{0,1}[0,9]{0,}\.{0,1}[0-9]{0,}$          所有的小数          《=》^-?[0,9]*\.?[0-9]*$


{0,1} 《=》?          {0,} 《=》*          {1,}《=》+


^[a-zA-Z_]$     所有的字母和下划线

^[[:alpha:]]{3}$     所有3个字母的单词

^a$          字母a

^a{5}$       字母aaaaa

^a{2,5}$     字母aa,aaa,aaaa,aaaaa

.{2}               所有的2个字符

[\f\r\t\n]          匹配所有的白字符  《=》\s


 

LOFTER

让兴趣,更有趣

简单随性的记录
丰富多彩的内容
让生活更加充实

下载移动端
关注最新消息