MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Mengoptimalkan Tugas Aliran Udara yang mentransfer data dari BigQuery ke MongoDB

Jawaban singkatnya adalah bahwa operasi asinkron memperkeruh profil Anda.

Dokumen di bq.query nyatakan google.cloud.bigquery.job.QueryJob objek adalah asinkron pekerjaan kueri. Artinya, setelah kueri dikirimkan, penerjemah python tidak memblokir sampai Anda mencoba menggunakan hasil kueri dengan salah satu QueryJob yang sinkron metode, to_dataframe() . Bagian signifikan dari 87 detik yang Anda lihat kemungkinan hanya dihabiskan untuk menunggu kueri kembali.

Anda dapat menunggu kueri selesai dengan memanggil QueryJob.done berulang-ulang hingga mengembalikan nilai true, lalu panggil pernyataan cetak profil kedua Anda.

Ini bukan pengoptimalan kode Anda, tetapi semoga membantu bergerak ke arah yang benar. Mungkin beberapa penyetelan panda bolak-balik dapat membantu, tetapi saya pikir kemungkinan sebagian besar waktu Anda dihabiskan untuk menunggu membaca/menulis dari basis data Anda, dan bahwa menulis lebih efisien atau sejumlah besar kueri yang lebih kecil akan menjadi milik Anda. satu-satunya pilihan untuk mengurangi total waktu.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Hindari entri duplikat pada array Mongoose

  2. Buat agregasi filter di musim semi

  3. Spring Data MongoDB dengan Java 8 LocalDate MappingException

  4. Skema MongoDB yang Benar untuk data agregat

  5. Bagaimana cara memeriksa sekunder disinkronkan sekarang atau tidak