插入 Impala table 与写入 HDFS

Insert into Impala table vs write to HDFS

我有大约 1 万条记录(在 Java 中存储为 ArrayList)。我想将这些记录插入到 Impala。

我应该使用insert into table partition values直接插入到impala吗? (我不确定在一个 sql 语句中可以插入多少条记录。)

或者我应该将这些记录写入 HDFS 然后 alter impala table?

首选哪种方式?或者还有其他解决办法吗?

而且,如果我每 5 分钟执行一次,我怎样才能避免一个分区(按小时分区)中有这么多小文件?这些会在每个分区产生12个小文件,这样会不会影响查询速度?

你能做的最好的事情是:

  1. 在 impala 中创建您的 table 作为与 HDFS 路由关联的外部 table
  2. 直接在HDFS中插入,如果可能每天,每小时可能很少
  3. 执行invalidate metada $TABLE_NAME命令使数据可见

希望回答对您有用

此致!