I used Hive 4.0.0.
set tez.grouping.split-count=1;
CREATE TABLE web_sales_parquet STORED AS PARQUET AS SELECT * FROM web_sales;
Summary.
The list of changed keywords.
PlanMapper helps Hive regenerate better query plans using runtime stats. It groups entities which are semantically the same. For example, A RelNode of Calcite to express WHERE id = 1
could be equivalent with a FilterOperator of Hive. A CommonMergeJoinOperator could be linked to a MapJoinOperator converted from the CommonMergeOperator.
Groups generated by PlanMapper express such relationship so that it can propagate the final runtime stats to RelNodes or Operators in each step. https://cwiki.apache.org/confluence/display/Hive/Query+ReExecution
In HIVE-12679, we have been trying to introduce a feature to make IMetaStoreClient
pluggable. This document is a summary of the past discussions.
Apache Hive hardcodes the implementation of IMetaStoreClient
, assuming it alreays talks to Hive Metastore. 99% of Hive users doesn't have any problems because they use HMS as a data catalog. However, some data platforms and their users use alternaive services as data catalogs.
I hereby claim:
To claim this, I am signing this object:
このrevision。 https://github.com/zookage/zookage/commit/80732dc3c25c623911cab3760f49687702fbf0bb
zookage@client-node-0:~$ beeline
Connecting to jdbc:hive2://hive-hiveserver2:10000/default;password=dummy;user=zookage
Connected to: Apache Hive (version 3.1.2)
Driver: Hive JDBC (version 3.1.2)
def findMofu(id: Int): Future[CacheError | IOError | NotFound, Mofu] = ???
def createMofu(mofu: Mofu): Future[CacheError | IOError | DuplicateError, Mofu] = ???
val result = findMofu(5).recoverWith {
case NotFound =>
createMofu(Mofu(5)).recoverWith {
case DuplicateError => UnknownError
}
}
class MofuSpec extends WordSpec with GeneratorDrivenPropertyChecks { | |
def measure(seq: Seq[Int], heap: Heap[Int]): Unit = { | |
val h = seq.foldLeft(heap) { (h, x) => h.insert(x) } | |
val h2 = seq.foldLeft(h) { (h, x) => h.deleteMin() } | |
assert(h2.isEmpty) | |
} | |
"mofu" should { | |
"fumo" in { | |
val initial = 300000 |