overwrite 的使用区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zimiao552147572/article/details/88427193

1.overwrite即为重写的意思, 指定了OVERWRITE,会有以下效果:
    目标表(或者分区)中的内容(如果有)会被删除,然后再将 filepath 指向的文件/目录中的内容添加到表/分区中。
    如果目标表(分区)已经有一个文件,并且文件名和 filepath 中的文件名冲突,那么现有的文件会被新文件所替代。

2.内部表 使用 overwrite:
    1.使用insert into table 数据只做增加操作;
      insert into table 指定相同分区可以进行不断的写入新数据,指定不同分区也可写入新数据。

    2.使用insert overwrite table 将删除当前指定的“存储数据目录的”所有数据(即只会删除指定分区数据不会删除其他分区的数据),再导入新的数据
      insert overwrite table 指定相同分区会先将之前的数据旧删除,再进行写入新数据;指定不同的分区则直接写入新数据。

    3.使用load data 数据只会增加当前表的数据;
      使用load data overwrite将删除当前指定的“存储数据目录中”的所有数据(即只会删除指定分区数据不会删除其他分区的数据),再导入新的数据。
 
3.外部表 使用into table 与 overwrite table 效果一致
    overwrite table 不更新mysql内容,into table 不更新mysql 表数据
    使用insert into table 与insert overwrite table 不会修改旧数据,只会将新数据直接写入数据库

猜你喜欢

转载自blog.csdn.net/zimiao552147572/article/details/88427193