有人可以解释查询优化是在代码级别还是在数据库级别进行的。
据我了解,访问数据库的代码/ API不了解数据库访问模式以及如何存储数据,因此通过数据库(Hive)进行优化比使用Spark / Hive(API)更有意义。但是有人可以弄清楚当Hive驱动程序/ SparkSQL向数据库发送查询以进行处理时究竟发生了什么。查询优化在哪里发生?
此外,我认为DAG的创建/解析也取决于查询优化,因为基于优化的查询计划,DAG可能更短或更大?有人可以添加查询优化发生时DAG的处理方式吗?
PS:我是Spark / Hadoop / Hive的初学者,所以如果我理解不对,请纠正我。