こんにちは!「Bubbleに大量のデータを一括登録したい」「Bubbleで作ったサービスにユーザー情報を移行したい」といった大量データの一括登録方法が分からず困った経験はありませんか?
本日は、Parabolaを使ってパスワードを含む10,000件のデータを一括登録する方法をご紹介します。
今回利用するサービス
今回ご紹介する方法では、Google sheetsとiPaaSのParabolaを利用します。Parabolaについては以下の記事でご紹介しています。まだアカウントをお持ちでない方は、以下の記事を参考にまずはアカウント登録してください。
ParabolaはZapierなどのiPaaS系サービスと違って、必ずしもフローの最初のステップにトリガーとなるアクションを設定する必要がないので、データの一括登録に向いているサービスです。
Parabolaを使ったGoogle sheets-Bubbleの連携方法については基本的に上記の記事と同じですが、ParabolaのUIで一部変更が入っているため改めて最初から解説します。
登録するデータを用意する
まずはBubbleにアップロードするデータをGoogle sheetsで用意します。 1行目にカラム名、2行目以降にアップロードしたいデータを入れます。
カラム名は、アップロードするBubbleのTypeのfield名と一致させると分かりやすいです。
10,000件のテストユーザーデータはこちらからご利用ください。
Parabolaで連携する
Parabolaにログインしたら、「Add a new flow」をクリックして新しいFlowを作成します。 Flowを開いたら、右側の白い部分にある「Pull data from other apps」をクリックし、選択肢から「Pull from Google Sheets」をドラッグアンドドロップで適当な位置に置きます。
次に、同じく右側の白い部分にある「Send data and trigger actions」をクリックし、選択肢から「Send to Bubble」をドラッグアンドドロップで「Pull from Google Sheets」の右側に置いてください。
このとき、黄色いアラートが出てきたらゴミ箱マークから削除してください。設定に関する注意点が記載されています。
そして、「Pull from Google Sheets」の右側から出ている矢印を引っ張って、「Send to Bubble」に繋げます。
Pull from Google Sheetsの設定
「どのGoogle Sheetsのどのシートの情報を登録するか」を設定しましょう。
配置した「Pull from Google Sheets」のアイコンをダブルクリックして編集画面を開きます。 左上の「Authorize Google Sheets」と記載されている部分をクリックし、登録したいGoogle Sheetsを保存しているGoogleアカウントを連携してください。
Googleアカウントを連携すると、Google Sheetsの情報を選択する部分のホワイトアウトが解除されるので、登録するGoogleSheetsのファイル名・シート名を選択してください。
左下の「Reflesh data」をクリックしてください。問題なければGoogleSheetsが編集画面に表示されます。
これでGoogle Sheetsの設定は完了ですので右上のバツ印から編集画面を閉じてください。
Bubble Exportの設定
次に、「どのBubbleアプリのどのTypeにデータを登録するか」を設定します。
Bubble側での設定とParabolaでの設定があります。
Bubble側での設定
- DataAPI連携設定
BubbleのDataAPI連携機能の設定をしていきます。 データを登録するBubbleアプリのSettings>APIタブを開き、「Public API endpoints」の「Enable data API」をチェックします。 するとTypeの一覧が表示されますので、データを登録するTypeをチェックしてください。
- Privacy Rule設定
今度は、データを登録するTypeのPrivacy Ruleの設定をしていきます。 Data>Privacyタブを開き、データを登録するTypeをクリックするとそのTypeのPrivacy ruleが表示されます。 User TypeにはデフォルトでPrivacy ruleが作成されています。
「Create/Modify/Delete via API」という項目がData APIに関する項目です。 今回はデータの一括登録のみなので、「Create via API」をチェックします。
以上でBubble側での設定は完了です。 Parabolaに戻りましょう。
Parabolaでの設定
Parabolaの「Bubble Export」のアイコンをダブルクリックし、編集画面を表示します。 各項目は以下のように設定してください。
- Request Type
データを作成するので、「POST」を選択します。
- API Endpoint URL
DataAPI連携に必要な「Data API root URL」を入力します。 このURLは、BubbleアプリのSettings>APIタブに記載されているURL(https://……/obj)の末尾に、「/データを登録するタイプ名」を追加したものです。
User Typeの登録であれば、
https://アプリ名.bubbleapps.io/version-test/api/1.1/obj/user
というURLになります。 Type名は先頭小文字で記載します。
- Request Body
Google Sheetsのどの列がどのカラムに対応するのかを記載します。 記載は以下のかたちが基本になります。
{
"Bubble 側の field名": "{Parabola 側の列名}"
}
今回は、以下のコードを記載します。
{
"Name": "{Name}",
"email": "{email}",
"password": "{password}"
}
今回はパスワードも登録したいので、passwordカラムについても記載します。 Bubbleに保存されているUserのパスワードは暗号化されているので閲覧やExportはできませんが、この方法でなら外部からの登録ができるようです。
- Authentication
Authentication Typeは「Bearer Token」を選択、下のBearer Token欄にはBubbleアプリのSettings>APIタブに記載されている「API Tokens」の「Private key」をコピーし貼り付けてください。 API Token Labelは「Parabola」にしておきましょう。
- Rate Limiting
処理件数に関する制限の設定です。 「Maximum requests per minute (optional)」はデフォルトでは60になっていますが、これでは全件登録完了まで60分以上かかるというエラーが出るので1000にしておきます。
以上で設定はすべて完了です。 最後に左下の「Reflesh data」をクリックし、問題なく編集画面にGoogle Sheetsが表示されるのを確認したら設定画面を閉じます。
処理を実行する
右上の青い「Update Live↑」をクリックし、画面中程の「Run Flow Now→」をさらにクリックすると確認のポップアップが出てくるので、「Run Now」をクリックすると処理が実行されます。
処理中は、「Run Flow Now→」の下部に「Flow running」と経過時間が表示されます。
ここに「Succedded」と処理結果が表示されたら処理完了です。 BubbleのDBからも登録できているか確認しておきましょう。 検証時の所要時間は、1,000件で14分、10,000件で54分でした。
終わりに
今回のポイントは、
10,000件の大量データ一括登録
パスワード情報の外部からの登録
でした。
システム移行や運用テストの際にぜひご活用ください!