Heroku Connect のマッピングの管理
最終更新日 2023年02月24日(金)
Table of Contents
Heroku Connect のマッピングは、Salesforce オブジェクトとそのフィールドが Heroku Postgres と Salesforce でどのように保持されるかを決定します。この記事では、Heroku Connect ダッシュボードからマッピングを管理するために使用される操作について説明します。API または CLI を通じてマッピングを管理する場合は、「Heroku Connect API」を参照してください。
オブジェクトをマッピングすると、オブジェクトのすべてのレコードが同期されます。Heroku Connect では、オブジェクトのレコードのサブセットの同期は許可されていません。
マッピングを作成する
マッピングを作成するには:
Heroku Connect ダッシュボードの
Mappings
(マッピング) タブでCreate Mapping
(マッピングの作成) をクリックします。検索ボックスを使用して、Salesforce 組織からマッピングできるオブジェクトのリストをフィルタリングします。マッピングするオブジェクトをクリックします。
読み取り専用または読み取り/書き込みのマッピングの選択を含む、同期オプションを選択します。
マッピングするフィールドをクリックします。リスト内の一部のフィールドは事前に選択されており、Heroku Connect が同期を実行するために必要なため、マッピングから削除することはできません。
Heroku Connect から最高のエクスペリエンスを確実に得るためには、
CreatedDate
やName
などの特定のフィールドをマッピングすることをお勧めします。これらのフィールドはマッピングの作成時にデフォルトで選択されていますが、選択を解除することもできます。一般的なクエリを最適化するには、マッピング用に 1 つ以上の単純なインデックスを設定します。インデックスを作成するフィールドごとに、
Indexed
列のチェックボックスをオンにします。または、PostgreSQL を使用して手動で複雑なインデックスを作成することもできます。Connect を使用して作成されたインデックスは、設定を別の接続にインポートするときに保持されますが、PostgreSQL を介して作成されたインデックスは保持されません。Save
(保存) をクリックすると、Heroku Connect が Salesforce オブジェクトに対応するテーブルをデータベースに作成します。Salesforce からすべてのレコードを照会し、それらをマッピングされたテーブルに挿入します。
マッピングを編集する
既存のマッピングを編集すると、ALTER TABLE
SQL コマンドを使用して既存のデータベーステーブルが変更されます。Heroku Connect は、新しくマッピングされたフィールドに Salesforce からのデータを入力します。
既存のマッピングを編集するには:
- Heroku Connect ダッシュボードで
Mappings
(マッピング) タブをクリックします。 - マッピングの詳細ページで、矢印の付いたアイコンをクリックし、メニューから
Edit
(編集) を選択します。 - 同期オプションを編集し、マッピングとの間でフィールドを追加または削除します。
Save
(保存) をクリックします。Heroku Connect は、マッピングされたデータベーステーブルを更新して、列を追加および削除します。また、Salesforce に新しいフィールドのデータを照会して、データベース内の既存のレコードを更新します。
マッピングを削除する
マッピングの削除は、データの損失を引き起こす破壊的なアクションです。
既存のマッピングを削除するには:
- マッピングがデータのロード状態の 1 つの場合、先へ進む前に中止します。
- Heroku Connect ダッシュボードで
Mappings
(マッピング) タブをクリックします。 - マッピングの詳細ページで、矢印の付いたアイコンをクリックし、メニューから
Delete
(削除) を選択します。
Connect からマッピングを削除すると、Postgres の基になるデータテーブルが削除されます。また、Connect は、トリガーログからマッピングの保留中の書き込みを削除しようとします。
マッピングをリロードする
マッピングのリロードは、元に戻すことができない破壊的なアクションです。
マッピングをリロードすると、マッピングされた Postgres テーブルの既存の行がすべて削除されます。トリガーログの保留中の書き込みも破棄されるため、Salesforce に書き込まれていない Postgres のデータはすべて失われます。すべてのレコードは、レコードの数に応じて、SOAP または Bulk API を使用して Salesforce からリロードされます。この操作により、「ID」列に新しい値が割り当てられます。
レコード数の多いマッピングでは、リロードプロセスのためにアプリケーションをメンテナンスモードにすることを検討してください。
マッピングをリロードするには:
- Heroku Connect ダッシュボードで
Mappings
(マッピング) タブをクリックします。 - マッピングの詳細ページで、矢印の付いたアイコンをクリックし、メニューから
Reload
(リロード) を選択します。 - 確認ウィンドウで、
Yes
(はい) をクリックします。
マッピングが SYSTEM_ERROR
状態に入っていた場合は、マッピングをリロードする代わりに接続を再開してください。
マッピングのインポートとエクスポート
既存のマッピング設定を JSON ファイルにエクスポートできます。JSON ファイルを編集してインポートすることで、マッピングに一括変更を加えることができます。
複数組織の設定など、同じマッピングを使用して設定を複数の Heroku Connect インスタンスにインポートすることもできます。
マッピングを追加および編集するには、設定をインポートする必要があります。インポートによってマッピングを削除することはできません。
現在の設定を JSON ファイルにエクスポートするには:
- Heroku Connect ダッシュボードの
Settings
(設定) タブをクリックします。 Import/Export Configuration
(設定のインポート/エクスポート) をクリックします。Export
(エクスポート) をクリックします。- 確認ウィンドウで
Export
(エクスポート) をクリックしてファイルをダウンロードします。
JSON 設定ファイルをインポートするには:
- Heroku Connect ダッシュボードの
Settings
(設定) タブをクリックします。 Import/Export Configuration
(設定のインポート/エクスポート) をクリックします。Import
(インポート) をクリックします。Choose file
(ファイルの選択) をクリックし、アップロードするファイルを選択します。Upload
(アップロード) をクリックして、インポートを開始します。
インポートが正常に完了すると、Heroku Connect は Salesforce 組織からデータベースへのデータの同期を開始します。
マッピングを中止する
マッピングを中止すると、そのマッピングで実行中のすべての操作がキャンセルされ、他のアクションを実行できるようになります。マッピングの中止は、操作の実行が予想よりも長引いている場合や、操作を誤って開始した場合、またはデータを現在ロードしているマッピングを削除する必要がある場合に役立ちます。
マッピングを中止するには:
- Heroku Connect ダッシュボードで
Mappings
(マッピング) タブをクリックします。 - マッピングの詳細ページで、矢印の付いたアイコンをクリックし、メニューから
Abort
(中止) を選択します。
ABORTED
状態からの回復の詳細は、状態および中止されたマッピング操作を参照してください。
孤立したマッピングを管理する
孤立したマッピングとは、Salesforce 組織で削除または名前が変更され、Heroku Connect にまだマッピングがあるオブジェクトです。これらのマッピングを表示および削除するには:
- Heroku Connect ダッシュボード を開きます。
Settings
(設定) タブをクリックします。Manage Connection
(接続の管理) をクリックします。- 「Orphaned Mappings」 (孤立したマッピング) セクションまでスクロールし、
Remove Orphaned Mappings
(孤立したマッピングの削除) をクリックして、設定からそれらを削除します。
Salesforce で変更されたフィールド定義を管理する
適切に調整されていない場合、フィールド定義の変更によって Heroku Connect との同期が遅れる可能性があります。
Salesforce でフィールドを変更した後、Heroku Connect でオブジェクトのマッピングを編集して、Heroku Postgres テーブルスキーマの更新をトリガーする必要があります。
フィールドの長さを延長する変更などのほとんどの場合、マッピングの Edit
(編集) をクリックしてから Save
(保存) をクリックできます。
より複雑なケース (フィールドタイプの変更など) では、マッピングを 2 回編集する必要があります。まず、マッピングを編集してフィールドの選択を解除し、保存して Connect が列を削除するようにします。その後、マッピングを再度編集して、フィールドを再度追加して保存します。Connect によってデータが再度追加されて、列にロードされます。