Comment puis-je mettre à jour les données dans un fichier HDFS similaire aux données de la table MySQL? J'ai vérifié sur Internet, mais tous les exemples donnés sont avec - incrémental lastmodified exemple.L'importation incrémentielle Sqoop et la mise à jour ne fonctionne pas
Où dans mon cas ma table MySQL ne contient pas de colonne de date ou d'horodatage. Comment est-ce que je peux mettre à jour les données dans le dossier de HDFS semblable aux données dans la table de MySQL qui ne contient pas la colonne de date?
J'ai table MySQL comme ci-dessous
mysql> select * from employee;
+----+--------+--------+------+-------+-----------+
| id | name | gender | age | state | language |
+----+--------+--------+------+-------+-----------+
| 1 | user1 | m | 25 | tn | tamil |
| 2 | user2 | m | 41 | ka | tamil |
| 3 | user3 | f | 47 | kl | tamil |
| 4 | user4 | f | 52 | ap | telugu |
| 5 | user5 | m | 55 | ap | telugu |
| 6 | user6 | f | 43 | tn | tamil |
| 7 | user7 | m | 34 | tn | malayalam |
| 8 | user8 | f | 33 | ap | telugu |
| 9 | user9 | m | 36 | ap | telugu |
J'ai importé à HDFS en utilisant la commande ci-dessous.
[[email protected] ~]$ sqoop import --connect jdbc:mysql://localhost:3306/mydatabase --username root --table employee --as-textfile --target-dir hdfs://localhost.localdomain:8020/user/cloudera/data/employee
Les données sont importées comme prévu.
[[email protected] ~]$ hadoop fs -ls /user/cloudera/data/employee/
Found 6 items
-rw-r--r-- 3 cloudera cloudera 0 2017-08-16 23:57 /user/cloudera/data/employee/_SUCCESS
drwxr-xr-x - cloudera cloudera 0 2017-08-16 23:56 /user/cloudera/data/employee/_logs
-rw-r--r-- 3 cloudera cloudera 112 2017-08-16 23:56 /user/cloudera/data/employee/part-m-00000
-rw-r--r-- 3 cloudera cloudera 118 2017-08-16 23:56 /user/cloudera/data/employee/part-m-00001
-rw-r--r-- 3 cloudera cloudera 132 2017-08-16 23:56 /user/cloudera/data/employee/part-m-00002
-rw-r--r-- 3 cloudera cloudera 136 2017-08-16 23:56 /user/cloudera/data/employee/part-m-00003
Maintenant, j'ai mis à jour les valeurs et les valeurs insérées dans la table mysql. Mais cette table ne contient pas de colonne de date.
mysql> update employee set language = 'marathi' where id >= 8;
mysql> insert into employee (name,gender,age,state,language from people) values('user11','f','25','kl','malayalam');
Je sais que les nouvelles valeurs introduites peuvent être insérées à l'aide hdfs --check-colonne, append incrémentale et la valeur --last. Mais comment puis-je mettre à jour les valeurs dans hdfs pour les lignes 8 et 9 de la table mysql mises à jour en 'marathi'? En outre, ma table d'employés ne contient pas de colonne de date ou d'horodatage.