sql >> Databáze >  >> NoSQL >> MongoDB

Optimalizace úlohy proudění vzduchu, která přenáší data z BigQuery do MongoDB

Krátkou odpovědí je, že asynchronní operace zatemňují vaše profilování.

Dokumenty na bq.query uveďte, že výsledný google.cloud.bigquery.job.QueryJob objekt je asynchronní dotazovací práce. To znamená, že po odeslání dotazu se pythonový interpret nezablokuje, dokud se nepokusíte použít výsledky dotazu s jedním ze synchronních QueryJob metody, to_dataframe() . Významnou část z 87 sekund, které vidíte, pravděpodobně strávíte čekáním na návrat dotazu.

Můžete počkat na dokončení dotazu voláním QueryJob.done iterativně, dokud nevrátí hodnotu true, pak zavolejte svůj 2. profilovací tiskový výpis.

Toto není tak docela optimalizace vašeho kódu, ale doufejme, že pomůže posunout se správným směrem. Je možné, že nějaké vyladění zpáteční cesty pandami by mohlo pomoci, ale domnívám se, že je pravděpodobné, že většinu času strávíte čekáním na čtení/zápis z vašich databází a že psaní bude efektivnější nebo větší počet menších dotazů bude vaším úkolem. jediná možnost, jak zkrátit celkový čas.




  1. MongoDB Stitch vrací data jako $NumberDouble namísto samotného čísla

  2. Meteor:Jak zkontrolovat, zda je položka v poli pole, ale vyloučit toto pole v Publikovat?

  3. jak nastavím úroveň protokolování na informace pro MongoDb?

  4. MongoDB – Najděte dokumenty, které splňují určité podmínky pro neznámé klíče polí