Esiste un modo per esportare i risultati da Pig direttamente in un database come mysql?Un modo per esportare i risultati da Pig a un database
risposta
Tenendo presente ciò che ha detto orangeoctopus (attenzione al DDOS ...) hai dato un'occhiata a DBStorage?
data = LOAD '...' AS (...);
...
STORE data INTO DBStorage('com.mysql.jdbc.Driver', 'dbc:mysql://host/db', 'INSERT ...');
Il problema principale che vedo è che ogni riduttore verrà effettivamente inserito nel database nello stesso momento.
Se non si pensi che questo sarà un problema, vi consiglio di scrivere un custom Storage method che utilizza JDBC (o qualcosa di simile) per inserire nel database direttamente e scrivere nulla fuori di HDFS.
Se si ha paura di eseguire un attacco DDOS nel proprio database, sarebbe forse meglio raccogliere i dati su HDFS ed eseguire un caricamento di massa separato in mysql.
Attualmente sto sperimentando un'applicazione per maiali incorporati che carica i risultati in mysql tramite PigServer.OpenIterator e una connessione JDBC. Ha funzionato molto bene nei test, ma non l'ho ancora provato su scala. Questo è simile al metodo di archiviazione personalizzato già suggerito, ma viene eseguito da un singolo punto, quindi nessun attacco DDOS accidentale. Si finisce per pagare il costo del trasferimento di rete due volte (cluster -> staging machine, staging machine -> server DB) se non si esegue il caricamento dal server DB (personalmente preferisco non eseguire nient'altro che il DB stesso dal DB server), ma non è diverso dall'opzione "scrivi il file e lo carica in blocco".
Sqoop può essere il buon modo per andare, ma è difficile da set-up (secondo me) come tutti questi progetti Hadoop relativi ...
di maiale DBStorage è funzionante bene (almeno per la conservazione).
Non dimenticare di registrare il PiggyBank e il driver di MySQL:
-- Register Piggy bank
REGISTER /opt/cmr/pig/pig-0.10.0/lib/piggybank.jar;
-- Register MySQL driver
REGISTER /opt/cmr/mysql/drivers/mysql-connector-java-5.1.15-bin.jar
Ecco un esempio di richiamo:
-- Store a relation into a SQL table
STORE relation INTO 'unused' USING org.apache.pig.piggybank.storage.DBStorage('com.mysql.jdbc.Driver', 'jdbc:mysql://<mysqlserver>/<database>', '<login>', '<password>', 'REPLACE INTO <table> (<column1>, <column2>) VALUES (?, ?)');
- 1. Esportare dati da un DBGrid a Excel
- 2. C'è un modo per importare automaticamente i risultati o i dati da Matlab a Mathematica?
- 3. Un modo per esportare una funzione generatore?
- 4. Esportare database MySQL da XAMPP
- 5. Esiste un modo per "esportare" un intero database di SQL Server (schema e dati) in testo?
- 6. C'è un modo per esportare i miei collegamenti esistenti da MySQL Workbench per Sequel PRO
- 7. modo semplice per esportare DataGridView a Excel
- 8. C'è un modo per "preservare" i risultati in Haskell?
- 9. Esiste un modo per visualizzare a capo i risultati di un cmdlet di PowerShell?
- 10. Come consumare un web API da asp.net Web API per archiviare i risultati nel database?
- 11. Esportare i dati da SAP a SQL Server
- 12. Come posso convertire un database da format iso a db3?
- 13. Memorizzazione dati a SequenceFile da Apache Pig
- 14. Modo generalizzato per estrarre JSON da un database relazionale?
- 15. Mac: come esportare i simboli da un file eseguibile?
- 16. YQL che restituisce risultati nulli da un client, ha popolato i risultati da un altro
- 17. Come importare/esportare database da PouchDB
- 18. Qual è il modo più semplice per esportare un database SQLServer 2000 in XML?
- 19. Pig, come fare riferimento a un campo dopo un join e un gruppo da
- 20. Esiste un modo per esportare uno schema XSD da un DataContract
- 21. Strategie per copiare i dati da un database MySQL attivo a un server di gestione temporanea
- 22. Un modo migliore per rappresentare i ruoli utente nel database
- 23. C'è un modo per importare/esportare SourceGear Vault su Git
- 24. C'è un modo per passare i parametri a un Runnable?
- 25. Come esportare i dati da SQL Server?
- 26. esportare un file CSV da mongodb
- 27. Come esportare tutti i pertinenti HTML/CSS per un elemento
- 28. Esiste un modo migliore per servire i risultati di un costoso processo Python bloccante su HTTP?
- 29. Come esportare in sicurezza tutte le impostazioni di IIS da un server a un altro?
- 30. Esportare una classe da un file Coffeescript
Sembra che ci sia alcun modo per aggirare la scrittura di un UDF che utilizza JDBC. .Grazie! – Christoph