Considérons deux flux de données ci-dessousEn comparant une valeur de jour des données de seaux S3 plus rapide
1. Front End Box ----> S3 Bucket-1
2. Front End Box ----> Kafka --> Storm ---> S3 Bucket-2
Les journaux des boîtes sont transférées dans des seaux S3. L'exigence est de remplacer le flux 1 par le flux 2.
Maintenant, les données doivent être validées entre Bucket-1
et Bucket-2
pour garantir que le flux 2 peut être utilisé.
Les options suivantes technologiques ont été essayées:
1. Python : boto3 Apis
2. Qubole
deux travaillent sur un ensemble limité de données, qubole est plus évolutif que script python. Mais il faut encore beaucoup de temps pour le faire (jamais fini, a dû tuer après avoir couru pendant la nuit). Nous examinons un demi-milliard d'entrées ici.
Recherche
SELECT
count(*)
FROM
TableA LEFT OUTER JOIN TableB
ON TableA.id = TableB.id
WHERE
TableB.id IS NULL
AND TableA.id IS NOT NULL
Question
Toute suggestion pour les outils, les moyens d'y parvenir plus rapidement?
Y a-t-il des moyens d'éviter la jointure?
Où hébergez-vous votre «Front End Box»? Si vous êtes sur AWS, vous pouvez regarder AWS Lamda. –
Oui c'est AWS. Jetez un coup d'œil à Lamda – Confused
Vous pouvez essayer de consigner des éléments à l'aide d'AWS CloudWatch, puis exécuter votre validation dans AWS Lambda et créer des fichiers temporaires que vous pouvez déplacer vers S3 avec 'python'. –