Hadoop 与 MSSQL 报告的可能性
Posted
技术标签:
【中文标题】Hadoop 与 MSSQL 报告的可能性【英文标题】:Possibilities of Hadoop with MSSQL Reporting 【发布时间】:2015-06-09 21:22:14 【问题描述】:我一直在评估 Azure HDInsight 上的 Hadoop,以便为我们的报告应用程序找到一个大数据解决方案。该技术评估的关键部分是我需要与 MSSQL Reporting Services 集成,因为这是我们的应用程序已经使用的。我们的开发人员资源非常短缺,所以我越能把它变成工程练习越好。到目前为止我所尝试的
使用从 MSSQL 映射到 HDInsight 上的 Hive 的 ODBC 连接。 使用来自 MSSQL 的 ODBC 连接,使用 HDInsight 上的 HBASE。 在 Azure HDInsight 远程桌面上本地使用 SPARKQL我发现 HBASE 和 Hive 与我们的报告一起使用的速度要慢得多。对于测试数据,我使用了一个有 60k 行的表,发现 MSSQL 上的报告运行时间不到 10 秒。我在 hive 查询控制台和 ODBC 连接上运行了查询,发现执行需要一分钟多的时间。 Spark 速度更快(30 秒),但由于无法在 HDInsight 群集上打开端口,因此无法从外部连接到它。
大数据和 Hadoop 对我来说都是全新的。我的问题是,我是否正在寻找 Hadoop 来做一些它不适合做的事情,有没有办法让它更快?我考虑过缓存结果并定期刷新它们,但这听起来像是一场管理噩梦。 Kylin 看起来很有前途,但我们与 windows azure 的关系非常好,所以我不确定这是一个可行的解决方案。
【问题讨论】:
您有什么理由想用 Hadoop 替换 SQL Server?当前的实现中什么不起作用? @marek 这是公司中的“自上而下”的请求,我不想在这里讨论。本质上,我们正在为大型数据集寻找极低延迟的报告解决方案。关于 Cloudera 发行版安装,我的印象是由于 HDInsight 群集上的端口限制,这将无法正常工作。 goo.gl/EeKvdX。另外,使用 Impala 而不是 Tez 会有什么优势(如果有的话)? Hive 适用于复杂、长时间运行的查询(想想 ETL 或推荐引擎),而不是报告。它在后台使用 MapReduce。 Hive-on-Tez 或 Hive-on-Spark 会更快,但如果没有实践经验,我也无法推荐。 这里没有 Azure 经验,但可以从 Marketplace azure.microsoft.com/en-us/marketplace/partners/cloudera/… 安装 Cloudera。这是一个预生产版本,所以它一定是新的。 我提到了 Impala,因为我使用它。它并不完美,但速度很快。下载 Cloudera QuickStart VM,在您的笔记本电脑上运行它,加载测试数据集,您将能够比较 Hive 和 Impala。 【参考方案1】:查看有关优化 Hive 查询的文档:https://azure.microsoft.com/en-us/documentation/articles/hdinsight-hadoop-optimize-hive-query/
具体看一下 ORC 和使用 Tez。我将创建一个默认启用 Tez 的集群,然后以 ORC 格式存储您的数据。那么您的查询应该会更加高效。
【讨论】:
【参考方案2】:如果通过 Spark 的速度足够快,您应该考虑使用 Microsoft Spark ODBC driver。我正在使用它,它的性能无法与您使用 MSSQL、其他 RDBMS 或类似 ElasticSearch 的性能相比,但它确实工作得非常可靠。
【讨论】:
以上是关于Hadoop 与 MSSQL 报告的可能性的主要内容,如果未能解决你的问题,请参考以下文章
大数据云计算高级实战Hadoop,Flink,Spark,Kafka,Storm,Docker高级技术大数据和Hadoop技能