Hive - 是否适合构建数据仓库?
Hive - Is it a good fit for building a datawarehouse?
所以像大多数企业公司一样,我们在 Hadoop 中构建了一个数据仓库,在 Hive 中支持用户查询,现在经过几个月的用户验收测试,每个人都对它不像标准感到有点惊讶(Oracle/Netezza) 最终用户用于临时数据分析的数据库。
虽然我知道这可能是一种非常愚蠢的做项目的方式(我们应该在构建产品之前研究用例和最适合的技术),而且我知道 Hadoop 与单节点机器有何不同的基本技术方面......我仍然想了解在任何情况下使用 Hadoop/Hive 对数据仓库是否有意义?
例如,
- 查询性能是否总是存在折衷,或者它们是否可以通过配置更改、硬件的水平扩展来优化?
- 它能否像 Netezza 这样的东西一样快 - 它使用非商品硬件但在类似的体系结构上运行?
- Hadoop 的伟大之处在哪里?相比之下,它绝对击败了其他一切?
嗯,在 HDFS 或 Hadoop 生态系统中使用存储大数据有很多好处。最重要的是,有人可以存储和处理大量数据,而且配置非常简单。
为了回答你的问题,
- Are there always trade-offs in query performance or can they be optimized with configuration changes, horizontal scaling of hardware?
如果您仅使用 Hadoop 的 hive 工具进行临时查询,那么这不是临时查询和数据分析的正确选择。我们已经根据您的用例探索了更好的选择,并从 Hive LLAP、HBase、Spark、SparkSQL、Spark Streaming、Apache storm、Imapala、Apache Drill 和 Prestodb 等中进行技术选择
- Can it ever be as fast as something like Netezza - which uses non-commodity hardware but functions on a similar architecture?
现在大多数组织都在使用它,这是更好的工具,但您必须根据您的用例从 Hadoop 技术堆栈中具体选择技术工具,并在研究它之后做出正确的技术选择。
- Where is Hadoop great and absolutely defeats everything else in comparison?
Hadoop 最适合在数据分散在多个系统中的大型组织中实施数据湖平台,使用 Hadoop 数据湖,您可以将数据放在中心位置。它可以用作在一段时间内积累的组织数据的数据分析平台。也可用于数据流数据处理,实时得到结果。
希望这会有所帮助。
我认为 Hive MetaStore 作为查询接口比 HiveServer2 本身更有用。
MetaStore 是 Presto 和 Spark 用来获取数据的方式,比 MapReduce 快得多,但可能不如经过良好优化的 Tez 查询快,并且 Hive v2.x+ 正在使用 LLAP 进行改进,例如。
最后,只有当摄取管道实际以 ORC 或 Parquet 的列格式存储数据时,Hive 才真正有用。从那里开始,合理的查询引擎可以相当快地扫描该数据,而 Hive 恰好被认为是该访问模式的实际实现,而 Impala 或 Presto 通常更多地用于临时访问。
也就是说,Hive(以及 Hadoop 上的其他 SQL)不用于 "building",而是用于 "analyzing"
而且我不知道你所说的 "standard" 是什么意思 - Hive 支持任何 ODBC/JDBC 连接,所以它不像你去 CLI 进行所有访问,HUE 或 Zeppelin 使真正SQL 分析 Hive 的好笔记本。
所以像大多数企业公司一样,我们在 Hadoop 中构建了一个数据仓库,在 Hive 中支持用户查询,现在经过几个月的用户验收测试,每个人都对它不像标准感到有点惊讶(Oracle/Netezza) 最终用户用于临时数据分析的数据库。 虽然我知道这可能是一种非常愚蠢的做项目的方式(我们应该在构建产品之前研究用例和最适合的技术),而且我知道 Hadoop 与单节点机器有何不同的基本技术方面......我仍然想了解在任何情况下使用 Hadoop/Hive 对数据仓库是否有意义? 例如,
- 查询性能是否总是存在折衷,或者它们是否可以通过配置更改、硬件的水平扩展来优化?
- 它能否像 Netezza 这样的东西一样快 - 它使用非商品硬件但在类似的体系结构上运行?
- Hadoop 的伟大之处在哪里?相比之下,它绝对击败了其他一切?
嗯,在 HDFS 或 Hadoop 生态系统中使用存储大数据有很多好处。最重要的是,有人可以存储和处理大量数据,而且配置非常简单。
为了回答你的问题,
- Are there always trade-offs in query performance or can they be optimized with configuration changes, horizontal scaling of hardware?
如果您仅使用 Hadoop 的 hive 工具进行临时查询,那么这不是临时查询和数据分析的正确选择。我们已经根据您的用例探索了更好的选择,并从 Hive LLAP、HBase、Spark、SparkSQL、Spark Streaming、Apache storm、Imapala、Apache Drill 和 Prestodb 等中进行技术选择
- Can it ever be as fast as something like Netezza - which uses non-commodity hardware but functions on a similar architecture?
现在大多数组织都在使用它,这是更好的工具,但您必须根据您的用例从 Hadoop 技术堆栈中具体选择技术工具,并在研究它之后做出正确的技术选择。
- Where is Hadoop great and absolutely defeats everything else in comparison?
Hadoop 最适合在数据分散在多个系统中的大型组织中实施数据湖平台,使用 Hadoop 数据湖,您可以将数据放在中心位置。它可以用作在一段时间内积累的组织数据的数据分析平台。也可用于数据流数据处理,实时得到结果。
希望这会有所帮助。
我认为 Hive MetaStore 作为查询接口比 HiveServer2 本身更有用。
MetaStore 是 Presto 和 Spark 用来获取数据的方式,比 MapReduce 快得多,但可能不如经过良好优化的 Tez 查询快,并且 Hive v2.x+ 正在使用 LLAP 进行改进,例如。
最后,只有当摄取管道实际以 ORC 或 Parquet 的列格式存储数据时,Hive 才真正有用。从那里开始,合理的查询引擎可以相当快地扫描该数据,而 Hive 恰好被认为是该访问模式的实际实现,而 Impala 或 Presto 通常更多地用于临时访问。
也就是说,Hive(以及 Hadoop 上的其他 SQL)不用于 "building",而是用于 "analyzing"
而且我不知道你所说的 "standard" 是什么意思 - Hive 支持任何 ODBC/JDBC 连接,所以它不像你去 CLI 进行所有访问,HUE 或 Zeppelin 使真正SQL 分析 Hive 的好笔记本。