我有一个平面文件person.txt,我每天都会收到以下字段 ID,名称,州,DOB
我有一个Hive表-Person,它由状态分区并由Id(30个桶)分隔。 1)有没有办法直接将person.txt加载到Person中,以便创建30个桶? 目前我有一个中间表,它充当一个临时层,从中将数据加载到Person
2)我每天都会以增量方式收到person.txt。有没有办法以增量方式加载Person,以便始终保持30个桶。当我从Staging表写入时,插入覆盖将清除所有内容,因此我必须在Staging中维护person.txt的完整历史记录,显然整个事物存在于Person中,并且由于复制因子为3. 1 TB变为6 TB。 / p>
任何指针,都会有所帮助
答案 0 :(得分:0)
在状态分区之后将第二个分区添加到您的表中,就像batchid一样。 每次加载新文件时都将批次运行编号作为分区值提供,以便新文件进入新分区并为每次加载创建30个桶。
插入覆盖表PERSON分区(state,batchid)选择...
OR
LOAD数据本地inpath覆盖到表PERSON分区(batchid = 1);