見出し画像

(Bubble)Airtableから大量データを取得する時に「:filtered」を使うと、それ以降Airtableが使えなくなることがある

概要

Airtableにある1万件程度のデータから、1件を絞り込んで取得しようとしました。
「:filtered」で絞り込みをして取得しようとしたところ、4分ほど待たされた後で「一時的な不具合により実行が中断されました。早急に問題の解消を進めておりますので、少し待って再度操作をお願いします。」と表示されました。
その後は、Airtableの他のテーブルも含め、Airtableからデータが取得できなくなりました。Bubble内蔵のDBは問題ありません。この状態は、ページをリロードするまで続きました。
メッセージは「Operation timed out — app too busy」の場合もありました。
なお、40秒ほど待たされて正常に結果が取得出来る時もあり、原因不明です。
待たされている時は画面の上端に水色のバーが出ましたが、右端の後少しで完了の所まで進んで、そこから先は動かなくなりました。

画像1

画像2

やったこと(NG例)

距離とエリアを指定し、Airtableにある配送料データを取得する処理。
Workflowで、Thing to changeを選択し、
・配送料金 = Airtable: 配送料一覧:filtered:first item’s 料金
 ・filteredに、配送距離と配送エリアを「=」で指定して絞り込み

画像4

解決方法

「:filtered」を使わずに、Airtableのテーブルを選ぶ際に、「Add a new constraint」を使って、絞り込み条件を記述する。

画像4

結果

数秒の遅延で表示できるようになりました。

試行錯誤

以下を試しましたが、結果は変わらずでした。
・Airtableの1列目を数字(この場合は距離)に変更して、インデックスがきくことを期待
・:filteredの絞り込み条件の順番を変更
・絞り込み条件に問題があるかと思い、配送距離だけ、配送エリアだけ、で絞り込み
・「:first item:filterd」のように、最初の?1レコードだけ取得してから絞り込み・・・これも効果がありませんでした。初めに見つかった1レコードだけ取得しているからすぐ処理が終わると期待しましたが、ダメでした。
・Sort byでソートして悪化したら、全レコード取得している・・・タイムアウトするのは変わらず。

原因不明でしきい値も不明ですが、大量のデータをAirtableから取得する際には「:filtered」を使用しない方が良さそうです。

この記事が気に入ったらサポートをしてみませんか?