example - apache hive español
Cómo sobrescribir la tabla MySQL al usar la exportación de sqoop desde Hive (1)
Necesito transferir datos de Hive a MySQL.
Aquí está mi comando sqoop:
jdbc:mysql://mysqlserver --username username --password password --table test --columns "member_id,answer_id,answerer_id" -m 1 --export-dir /user/hive/warehouse/utils.db/test --input-fields-terminated-by /001 --lines-terminated-by /n --update-mode allowinsert
Pero, cada vez que ejecuto este comando, los datos parecen estar anexados a la tabla pero no sobrescriben la tabla.
Entonces, ¿hay alguna forma de que pueda truncar la tabla MySQL automáticamente cuando ejecuto este comando sqoop?
Creo que lo que estás tratando de hacer es completar la actualización de la tabla cada vez que cargues los datos. generalmente eso es algo que necesita ser manejado en el final de la base de datos. Deberá eliminar todos los registros antes de realizar la inserción. La otra forma es use --staging-table
parameter junto con --clear-staging-table
que se asegurará de que la tabla se borre cada vez. En este escenario, su tabla contendrá una tabla ficticia que se activará cada vez. puede tener un desencadenante para borrar los datos de esa tabla en el período establecido todos los días o cuando le plazca. He dado el comando sqoop a continuación. He colocado "prueba" como tabla de preparación y "ficticio" como tabla principal.
jdbc:mysql://mysqlserver --username username --password password --table dummy --columns "member_id,answer_id,answerer_id" -m 1 --export-dir /user/hive/warehouse/utils.db/test --input-fields-terminated-by /001 --lines-terminated-by /n --update-mode allowinsert --staging-table test --clear-staging-table