首页 文章 精选 留言 我的

精选列表

搜索[实时etl],共10000篇文章
优秀的个人博客,低调大师

Qlik Sense Cloud Business现在可用于基于Web的实时可视化分析

工作组和中小企业无需下载SaaS分析功能即可加速实现价值 中国北京,2017 年 2 月 7 日,可视化分析领导者 Qlik 今天宣布,现在可以为中小企业、群组和团队提供其基于 SaaS 的可视化分析解决方案 Qlik Sense Cloud Business,帮助他们在云上创建、管理和共享分析技术。由获得专利的 QIX 关联索引引擎提供支持,Qlik Sense Cloud Business 在全面的云环境中充分发挥了业界公认的 Qlik 可视化分析平台的可扩展性和高性能特性。通过灵活、低成本的每月订阅、简化的管理和完全基于 Web 的体验,降低了进入门槛,客户无需任何资金成本或者承诺,现在就能够马上受益于 Qlik Sense Cloud Business。 Qlik CTO 兼产品资深副总裁 Anthony Deighton 表示:“商业集团的分支机构越来越多,成员位于不同的地理位置和环境中。如果在世界任何地方、任何设备上的体验都是一致的,那么,就可以保证团队能够快速无缝地协同工作。不断发展的需求促使 Qlik 采用为云设计的微服务平台来替代单个堆叠解决方案。我们为用户驱动的自助服务商业智能开发了这类产品,现在我们通过创建一个可扩展的、云优先平台来拓展市场,各种规模的公司都可以考虑将其作为他们分析策略的核心。” 完全基于云的解决方案增强了数据驱动的分析功能 凭借其 HTML5 客户端反应灵敏的拖放式界面和先进的可视化体验,Qlik Sense Cloud Business 将强大的数据驱动的分析功能延伸到任意规模企业的用户和群组中。其简单直观的设计使任何技术水平的用户都能够快速、轻松地创建和管理有意义的分析应用程序,并与程序协作互动。响应式设计功能可随时随地对来自任何设备(无论大小)的数据进行分析,包括了接触、提取和交互特性,而且无需额外的步骤。Qlik Sense Cloud Business 提供了完全基于 Web 的体验,因此,任何技术水平的用户都可以立即开始使用,而且很容易获取数据和应用程序。 此外,通过一键式共享功能,可以轻松地在企业内部和外部共享应用和分析数据,从而提高了数据的价值,促使更快做出决策。通过可视化数据准备功能,用户可以合并多个来源的多个数据集,快速创建丰富的交互式应用程序,以数据全面说明问题。这种用户体验是由 Qlik 的关联模型支持实现的,使用户能够发现所有数据中存在的所有可能的相关性。 Corporater 高级顾问 Lakshmikandh Karthikeyan 表示:“我使用过其他的产品,例如 Microsoft PowerBI和Tableau。与竞争产品相比,Qlik Sense Cloud Business 非常先进,而且用户友好。”(资料来源:TechValidate。TVID:38C-A93-99D) 简单、受控的协作功能以更快速度提供更多价值 Qlik Sense Cloud Business 包括了群组部署和管理一系列分析应用程序的管理功能。具体功能包括: 群组工作区(group work area),可协作创建、编辑和访问群组内容和应用,不但增强了协作而且不会影响灵活性。 群组数据空间(group data space),贡献出含有可重复使用和定义一致的数据,加快了创建新应用程序的过程,当业务需求随着时间推移出现变化时,可确定是否需要维护应用程序。 群组共享网络(group shared networks),管理用户可受邀使用的多个共享网络或者流,控制哪些用户可以访问哪些应用程序。 有了这种基于云的模型,企业可以根据需求变化添加新用户和应用程序,灵活满足当前和未来的需求。Qlik Sense Cloud Business 遵循业界领先的最佳安全实践,所有升级和基础设施需求均由 Qlik 管理。 供货信息 100,000多个用户正在使用Qlik Sense Cloud对数据进行可视化处理。Qlik Sense Cloud Business现已正式上市。 关于Qlik Qlik 是可视化平台的领导者,也是以用户为驱动的商业智能领域的先锋企业。无论数据位于何处,Qlik基于云端和本地的解决方案都能够满足客户日益增长的分析需求,涵盖报表,自助式可视化分析,引导型分析、嵌入式分析以及定制化分析需求。客户通过使用Qlik Sense、QlikView 和Qlik Cloud,从多种数据来源获取有效信息,探索隐藏在数据中的关系并最终获得能够激发绝佳创意的深刻见解。Qlik总部位于美国宾夕法尼亚州Radnor市,在全球超过100个国家开展业务,并拥有超过40,000个客户。 本文出处:畅享网 本文来自云栖社区合作伙伴畅享网,了解相关信息可以关注vsharing.com网站。

优秀的个人博客,低调大师

Spark入门实战系列--7.Spark Streaming(下)--实时流计算Spark Streaming实战

【注】该系列文章以及使用到安装包/测试数据 可以在《倾情大奉送--Spark入门实战系列》获取 1、实例演示 1.1流数据模拟器 1.1.1流数据说明 在实例演示中模拟实际情况,需要源源不断地接入流数据,为了在演示过程中更接近真实环境将定义流数据模拟器。该模拟器主要功能:通过Socket方式监听指定的端口号,当外部程序通过该端口连接并请求数据时,模拟器将定时将指定的文件数据随机获取发送给外部程序。 1.1.2模拟器代码 import java.io.{PrintWriter} import java.net.ServerSocket import scala.io.Source object StreamingSimulation { //定义随机获取整数的方法 def index(length: Int) = { import java.util.Random val rdm = new Random rdm.nextInt(length) } def main(args: Array[String]) { //调用该模拟器需要三个参数,分为为文件路径、端口号和间隔时间(单位:毫秒) if (args.length != 3) { System.err.println("Usage: <filename> <port> <millisecond>") System.exit(1) } //获取指定文件总的行数 val filename = args(0) val lines = Source.fromFile(filename).getLines.toList val filerow = lines.length //指定监听某端口,当外部程序请求时建立连接 val listener = new ServerSocket(args(1).toInt) while (true) { val socket = listener.accept() new Thread() { override def run = { println("Got client connected from: " + socket.getInetAddress) val out = new PrintWriter(socket.getOutputStream(), true) while (true) { Thread.sleep(args(2).toLong) //当该端口接受请求时,随机获取某行数据发送给对方 val content = lines(index(filerow)) println(content) out.write(content + '\n') out.flush() } socket.close() } }.start() } } } 1.1.3生成打包文件 【注】可以参见第3课《Spark编程模型(下)--IDEA搭建及实战》进行打包 在打包配置界面中,需要在Class Path加入:/app/scala-2.10.4/lib/scala-swing.jar /app/scala-2.10.4/lib/scala-library.jar /app/scala-2.10.4/lib/scala-actors.jar,各个jar包之间用空格分开, 点击菜单Build->Build Artifacts,弹出选择动作,选择Build或者Rebuild动作,使用如下命令复制打包文件到Spark根目录下 cd /home/hadoop/IdeaProjects/out/artifacts/LearnSpark_jar cp LearnSpark.jar /app/hadoop/spark-1.1.0/ ll /app/hadoop/spark-1.1.0/ 1.2实例1:读取文件演示 1.2.1演示说明 在该实例中Spark Streaming将监控某目录中的文件,获取在间隔时间段内变化的数据,然后通过Spark Streaming计算出改时间段内单词统计数。 1.2.2演示代码 import org.apache.spark.SparkConf import org.apache.spark.streaming.{Seconds, StreamingContext} import org.apache.spark.streaming.StreamingContext._ object FileWordCount { def main(args: Array[String]) { val sparkConf = new SparkConf().setAppName("FileWordCount").setMaster("local[2]") //创建Streaming的上下文,包括Spark的配置和时间间隔,这里时间为间隔20秒 val ssc = new StreamingContext(sparkConf, Seconds(20)) //指定监控的目录,在这里为/home/hadoop/temp/ val lines = ssc.textFileStream("/home/hadoop/temp/") //对指定文件夹变化的数据进行单词统计并且打印 val words = lines.flatMap(_.split(" ")) val wordCounts = words.map(x => (x, 1)).reduceByKey(_ + _) wordCounts.print() //启动Streaming ssc.start() ssc.awaitTermination() } } 1.2.3运行代码 第一步创建Streaming监控目录 创建/home/hadoop/temp为Spark Streaming监控的目录,通过在该目录中定时添加文件内容,然后由Spark Streaming统计出单词个数 第二步使用如下命令启动Spark集群 $cd /app/hadoop/spark-1.1.0 $sbin/start-all.sh 第三步在IDEA中运行Streaming程序 在IDEA中运行该实例,由于该实例没有输入参数故不需要配置参数,在运行日志中将定时打印时间戳。如果在监控目录中加入文件内容,将输出时间戳的同时将输出单词统计个数。 1.2.4添加文本及内容 1.2.5查看结果 第一步查看IDEA中运行情况 在IDEA的运行日志窗口中,可以观察到输出时间戳的同时将输出单词统计个数 第二步通过webUI监控运行情况 在http://hadoop1:4040监控Spark Streaming运行情况,可以观察到每20秒运行一次作业 并且与其他运行作业相比在监控菜单增加了"Streaming"项目,点击可以看到监控内容: 1.3实例2:网络数据演示 1.3.1演示说明 在该实例中将由4.1流数据模拟以1秒的频度发送模拟数据,Spark Streaming通过Socket接收流数据并每20秒运行一次用来处理接收到数据,处理完毕后打印该时间段内数据出现的频度,即在各处理段时间之间状态并无关系。 1.3.2演示代码 import org.apache.spark.{SparkContext, SparkConf} import org.apache.spark.streaming.{Milliseconds, Seconds, StreamingContext} import org.apache.spark.streaming.StreamingContext._ import org.apache.spark.storage.StorageLevel object NetworkWordCount { def main(args: Array[String]) { val conf = new SparkConf().setAppName("NetworkWordCount").setMaster("local[2]") val sc = new SparkContext(conf) val ssc = new StreamingContext(sc, Seconds(20)) //通过Socket获取数据,该处需要提供Socket的主机名和端口号,数据保存在内存和硬盘中 val lines = ssc.socketTextStream(args(0), args(1).toInt, StorageLevel.MEMORY_AND_DISK_SER) //对读入的数据进行分割、计数 val words = lines.flatMap(_.split(",")) val wordCounts = words.map(x => (x, 1)).reduceByKey(_ + _) wordCounts.print() ssc.start() ssc.awaitTermination() } } 1.3.3运行代码 第一步启动流数据模拟器 启动4.1打包好的流数据模拟器,在该实例中将定时发送/home/hadoop/upload/class7目录下的people.txt数据文件(该文件可以在本系列配套资源目录/data/class7中找到),其中people.txt数据内容如下: 模拟器Socket端口号为9999,频度为1秒, $cd /app/hadoop/spark-1.1.0 $java -cp LearnSpark.jar class7.StreamingSimulation /home/hadoop/upload/class7/people.txt 9999 1000 在没有程序连接时,该程序处于阻塞状态 第二步在IDEA中运行Streaming程序 在IDEA中运行该实例,该实例需要配置连接Socket主机名和端口号,在这里配置参数机器名为hadoop1和端口号为9999 1.3.4查看结果 第一步观察模拟器发送情况 IDEA中的Spark Streaming程序运行与模拟器建立连接,当模拟器检测到外部连接时开始发送测试数据,数据是随机的在指定的文件中获取一行数据并发送,时间间隔为1秒 第二步在监控页面观察执行情况 在webUI上监控作业运行情况,可以观察到每20秒运行一次作业 第三步IDEA运行情况 在IDEA的运行窗口中,可以观测到的统计结果,通过分析在Spark Streaming每段时间内单词数为20,正好是20秒内每秒发送总数。 1.4实例3:销售数据统计演示 1.4.1演示说明 在该实例中将由4.1流数据模拟器以1秒的频度发送模拟数据(销售数据),Spark Streaming通过Socket接收流数据并每5秒运行一次用来处理接收到数据,处理完毕后打印该时间段内销售数据总和,需要注意的是各处理段时间之间状态并无关系。 1.4.2演示代码 import org.apache.log4j.{Level, Logger} import org.apache.spark.{SparkContext, SparkConf} import org.apache.spark.streaming.{Milliseconds, Seconds, StreamingContext} import org.apache.spark.streaming.StreamingContext._ import org.apache.spark.storage.StorageLevel object SaleAmount { def main(args: Array[String]) { if (args.length != 2) { System.err.println("Usage: SaleAmount <hostname> <port> ") System.exit(1) } Logger.getLogger("org.apache.spark").setLevel(Level.ERROR) Logger.getLogger("org.eclipse.jetty.server").setLevel(Level.OFF) val conf = new SparkConf().setAppName("SaleAmount").setMaster("local[2]") val sc = new SparkContext(conf) val ssc = new StreamingContext(sc, Seconds(5)) //通过Socket获取数据,该处需要提供Socket的主机名和端口号,数据保存在内存和硬盘中 val lines = ssc.socketTextStream(args(0), args(1).toInt, StorageLevel.MEMORY_AND_DISK_SER) val words = lines.map(_.split(",")).filter(_.length == 6) val wordCounts = words.map(x=>(1, x(5).toDouble)).reduceByKey(_ + _) wordCounts.print() ssc.start() ssc.awaitTermination() } } 1.4.3运行代码 第一步启动流数据模拟器 启动4.1打包好的流数据模拟器,在该实例中将定时发送第五课/home/hadoop/upload/class5/saledata目录下的tbStockDetail.txt数据文件(参见第五课《5.Hive(下)--Hive实战》中2.1.2数据描述,该文件可以在本系列配套资源目录/data/class5/saledata中找到),其中表tbStockDetail字段分别为订单号、行号、货品、数量、金额,数据内容如下: 模拟器Socket端口号为9999,频度为1秒 $cd /app/hadoop/spark-1.1.0 $java -cp LearnSpark.jar class7.StreamingSimulation /home/hadoop/upload/class5/saledata/tbStockDetail.txt 9999 1000 在IDEA中运行该实例,该实例需要配置连接Socket主机名和端口号,在这里配置参数机器名为hadoop1和端口号为9999 1.4.4查看结果 第一步观察模拟器发送情况 IDEA中的Spark Streaming程序运行与模拟器建立连接,当模拟器检测到外部连接时开始发送销售数据,时间间隔为1秒 第二步IDEA运行情况 在IDEA的运行窗口中,可以观察到每5秒运行一次作业(两次运行间隔为5000毫秒),运行完毕后打印该时间段内销售数据总和。 第三步在监控页面观察执行情况 在webUI上监控作业运行情况,可以观察到每5秒运行一次作业 1.5实例4:Stateful演示 1.5.1演示说明 该实例为Spark Streaming状态操作,模拟数据由4.1流数据模拟以1秒的频度发送,Spark Streaming通过Socket接收流数据并每5秒运行一次用来处理接收到数据,处理完毕后打印程序启动后单词出现的频度,相比较前面4.3实例在该实例中各时间段之间状态是相关的。 1.5.2演示代码 import org.apache.log4j.{Level, Logger} import org.apache.spark.{SparkContext, SparkConf} import org.apache.spark.streaming.{Seconds, StreamingContext} import org.apache.spark.streaming.StreamingContext._ object StatefulWordCount { def main(args: Array[String]) { if (args.length != 2) { System.err.println("Usage: StatefulWordCount <filename> <port> ") System.exit(1) } Logger.getLogger("org.apache.spark").setLevel(Level.ERROR) Logger.getLogger("org.eclipse.jetty.server").setLevel(Level.OFF) //定义更新状态方法,参数values为当前批次单词频度,state为以往批次单词频度 val updateFunc = (values: Seq[Int], state: Option[Int]) => { val currentCount = values.foldLeft(0)(_ + _) val previousCount = state.getOrElse(0) Some(currentCount + previousCount) } val conf = new SparkConf().setAppName("StatefulWordCount").setMaster("local[2]") val sc = new SparkContext(conf) //创建StreamingContext,Spark Steaming运行时间间隔为5秒 val ssc = new StreamingContext(sc, Seconds(5)) //定义checkpoint目录为当前目录 ssc.checkpoint(".") //获取从Socket发送过来数据 val lines = ssc.socketTextStream(args(0), args(1).toInt) val words = lines.flatMap(_.split(",")) val wordCounts = words.map(x => (x, 1)) //使用updateStateByKey来更新状态,统计从运行开始以来单词总的次数 val stateDstream = wordCounts.updateStateByKey[Int](updateFunc) stateDstream.print() ssc.start() ssc.awaitTermination() } } 1.5.3运行代码 第一步启动流数据模拟器 启动4.1打包好的流数据模拟器,在该实例中将定时发送/home/hadoop/upload/class7目录下的people.txt数据文件(该文件可以在本系列配套资源目录/data/class7中找到),其中people.txt数据内容如下: 模拟器Socket端口号为9999,频度为1秒 $cd /app/hadoop/spark-1.1.0 $java -cp LearnSpark.jar class7.StreamingSimulation /home/hadoop/upload/class7/people.txt 9999 1000 在没有程序连接时,该程序处于阻塞状态,在IDEA中运行Streaming程序 在IDEA中运行该实例,该实例需要配置连接Socket主机名和端口号,在这里配置参数机器名为hadoop1和端口号为9999 1.5.4查看结果 第一步IDEA运行情况 在IDEA的运行窗口中,可以观察到第一次运行统计单词总数为1,第二次为6,第N次为5(N-1)+1,即统计单词的总数为程序运行单词数总和。 第二步在监控页面观察执行情况 在webUI上监控作业运行情况,可以观察到每5秒运行一次作业 第三步查看CheckPoint情况 在项目根目录下可以看到checkpoint文件 1.6实例5:Window演示 1.6.1演示说明 该实例为Spark Streaming窗口操作,模拟数据由4.1流数据模拟以1秒的频度发送,Spark Streaming通过Socket接收流数据并每10秒运行一次用来处理接收到数据,处理完毕后打印程序启动后单词出现的频度。相比前面的实例,Spark Streaming窗口统计是通过reduceByKeyAndWindow()方法实现的,在该方法中需要指定窗口时间长度和滑动时间间隔。 1.6.2演示代码 import org.apache.log4j.{Level, Logger} import org.apache.spark.{SparkContext, SparkConf} import org.apache.spark.storage.StorageLevel import org.apache.spark.streaming._ import org.apache.spark.streaming.StreamingContext._ object WindowWordCount { def main(args: Array[String]) { if (args.length != 4) { System.err.println("Usage: WindowWorldCount <filename> <port> <windowDuration> <slideDuration>") System.exit(1) } Logger.getLogger("org.apache.spark").setLevel(Level.ERROR) Logger.getLogger("org.eclipse.jetty.server").setLevel(Level.OFF) val conf = new SparkConf().setAppName("WindowWordCount").setMaster("local[2]") val sc = new SparkContext(conf) //创建StreamingContext val ssc = new StreamingContext(sc, Seconds(5)) //定义checkpoint目录为当前目录 ssc.checkpoint(".") //通过Socket获取数据,该处需要提供Socket的主机名和端口号,数据保存在内存和硬盘中 val lines = ssc.socketTextStream(args(0), args(1).toInt, StorageLevel.MEMORY_ONLY_SER) val words = lines.flatMap(_.split(",")) // windows操作,第一种方式为叠加处理,第二种方式为增量处理 val wordCounts = words.map(x => (x , 1)).reduceByKeyAndWindow((a:Int,b:Int) => (a + b), Seconds(args(2).toInt), Seconds(args(3).toInt)) //val wordCounts = words.map(x => (x , 1)).reduceByKeyAndWindow(_+_, _-_,Seconds(args(2).toInt), Seconds(args(3).toInt)) wordCounts.print() ssc.start() ssc.awaitTermination() } } 1.6.3运行代码 第一步启动流数据模拟器 启动4.1打包好的流数据模拟器,在该实例中将定时发送/home/hadoop/upload/class7目录下的people.txt数据文件(该文件可以在本系列配套资源目录/data/class7中找到),其中people.txt数据内容如下: 模拟器Socket端口号为9999,频度为1秒 $cd /app/hadoop/spark-1.1.0 $java -cp LearnSpark.jar class7.StreamingSimulation /home/hadoop/upload/class7/people.txt 9999 1000 在没有程序连接时,该程序处于阻塞状态,在IDEA中运行Streaming程序 在IDEA中运行该实例,该实例需要配置连接Socket主机名和端口号,在这里配置参数机器名为hadoop1、端口号为9999、时间窗口为30秒和滑动时间间隔10秒 1.6.4查看结果 第一步IDEA运行情况 在IDEA的运行窗口中,可以观察到第一次运行统计单词总数为4,第二次为14,第N次为10(N-1)+4,即统计单词的总数为程序运行单词数总和。 第二步在监控页面观察执行情况 在webUI上监控作业运行情况,可以观察到每10秒运行一次作业 本文转自shishanyuan博客园博客,原文链接: http://www.cnblogs.com/shishanyuan/p/4747749.html,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册