我一直在 Azure HDInsight 上评估 Hadoop,以便为我们的报告应用程序找到大数据解决方案。该技术评估的关键部分是我需要与 MSSQL Reporting Services 集成,因为我们的应用程序已经使用了该服务。我们的开发人员资源非常短缺,因此我越能将其变成工程练习就越好。到目前为止我已经尝试过的事情
- 使用从 MSSQL 映射到 HDInsight 上的 Hive 的 ODBC 连接。
- 通过 HDInsight 上的 HBASE 使用来自 MSSQL 的 ODBC 连接。
- 在 Azure HDInsight 远程桌面上本地使用 SPARKQL
我发现 HBASE 和 Hive 在我们的报告中使用起来要慢得多。对于测试数据,我使用了 60k 行的表,发现 MSSQL 上的报告运行时间不到 10 秒。我在 hive 查询控制台和 ODBC 连接上运行查询,发现执行时间超过一分钟。 Spark 速度更快(30 秒),但无法从外部连接到它,因为无法在 HDInsight 群集上打开端口。
大数据和 Hadoop 对我来说都是新事物。我的问题是,我是否正在寻找 Hadoop 来做一些它不适合做的事情?有没有办法让它更快?我考虑过缓存结果并定期刷新它们,但这听起来像是一场管理噩梦。 Kylin 看起来很有前途,但我们已经与 windows azure 结合得很好,所以我不确定这是否是一个可行的解决方案。
最佳答案
查看有关优化 Hive 查询的文档:https://azure.microsoft.com/en-us/documentation/articles/hdinsight-hadoop-optimize-hive-query/
具体看看 ORC 和使用 Tez。我将创建一个默认启用 Tez 的集群,然后以 ORC 格式存储数据。那么你的查询应该会更加高效。
关于azure - Hadoop 与 MSSQL 报告的可能性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30743066/