sql >> データベース >  >> NoSQL >> MongoDB

BigQueryからMongoDBにデータを転送するAirflowタスクの最適化

    簡単に言うと、非同期操作によってプロファイリングが混乱しているということです。

    bq.queryに関するドキュメント 結果の google.cloud.bigquery.job.QueryJob オブジェクトは非同期です クエリジョブ。つまり、クエリが送信された後、同期されたQueryJobのいずれかでクエリの結果を使用しようとするまで、Pythonインタープリターはブロックされません。 メソッド、to_dataframe() 。表示されている87秒のかなりの部分は、クエリが返されるのを待つためだけに費やされている可能性があります。

    QueryJob.doneを呼び出すことで、クエリが完了するのを待つことができます。 trueが返されるまで繰り返し、2番目のプロファイリング印刷ステートメントを呼び出します。

    これはコードの最適化ではありませんが、正しい方向に進むのに役立つことを願っています。パンダの往復の調整が役立つ可能性はありますが、データベースからの読み取り/書き込みを待つためにほとんどの時間が費やされている可能性があり、より効率的な書き込みまたはより多くの小さなクエリの書き込みがあなたの合計時間を短縮するための唯一のオプション。




    1. mongodbを使用してphpでレコードを更新および挿入する方法

    2. C#用の最も成熟したMongoDBドライバーは何ですか?

    3. MongoDb Aggregation:array-1とarray-2が指定されている場合、別のarray-2に基づいてarray-1をグループ化するにはどうすればよいですか?

    4. Sinonを使用したJavaScriptでのRedisインタラクションのスタブ