本記事ではFileMaker Server/Cloud にあるデータをCData Sync のAPI コネクタを用いてSnowflake に連携する方法についてご紹介します。
FileMaker には外部ツールからデータ取得できる方法として、
- JDBC/ODBC
- FileMaker Data API
- FileMaker OData API
の3種類があり、今回は3のFileMaker OData API を利用したデータ取得を試みます。
事前設定
CData Sync
事前にFileMaker Server/Cloud にAPI 接続できるマシンにCData Sync をインストールしてください。インストール方法についてはこちらのクイックスタートガイドを参照してください。
FileMaker
CData Sync から FileMaker 側で提供しているOData API を利用してデータを取得します。OData API を利用するためには
- FileMaker Server/Cloud 側でのOData API の有効化
- FileMaker Pro でfmodata 拡張アクセス権を有効化
の2つの設定が必要になります。
FileMaker Server/Cloud 側でのOData API の有効化
FileMaker Server/Cloud のAdmin Console の[コネクタ]タブ内にある[OData]からODataの設定を有効化してください。
FileMaker Pro でfmodata 拡張アクセス権を有効化
FileMaker Pro で API を実行するユーザに対してfmodata 拡張アクセス権を付与します。FileMaker Pro で連携したいデータベースにログインし、[ファイル] -> [管理] -> [セキュリティ...]を選択します。
後ほどSync に設定するAPI を実行する任意のアカウントを選択し、次のOData でのアクセス (fmodata) の権限が付与されているアクセス権セットをアカウントに設定してください。
CData Sync 設定手順
最初にCData Sync からFileMaker, Snowflake にアクセスするための接続設定を行い、設定完了後に実際にレプリケーションジョブを実行する手順となります。
FileMaker 接続設定
サイドバーにある[接続]をクリック
[接続を追加]をクリック
[データソース]内にある[API]を選択しクリック
各入力フォームに次の値を設定し、設定完了後に画面右上の[作成およびテスト]をクリックし接続が成功するのを確認
- 接続名: 任意の値
- Auth Scheme: Basic
- User: 事前設定でfmodata 拡張アクセス権 を付与したアカウント名
- Password: 事前設定でfmodata 拡張アクセス権 を付与したアカウントのPW
- Test URL: https://{FileMaker Server/Cloudのドメイン}/fmi/odata/v4
接続が成功したら[テーブル]タブが現れるので遷移し、[テーブルを追加]をクリック
入力フォームのリクエストURL次の値を入力。
- リクエストURL: https://{FileMaker Server/Cloudのドメイン}/fmi/odata/v4/{データベース名}/{テーブル名}
- ※データベース名、テーブル名に日本語が使われている場合の注意点:
- データベース名に日本語などのマルチバイト文字が含まれている場合はURLエンコードした値を入力してください
- テーブル名に日本語などのマルチバイト文字が含まれている場合はダブルクォーテーションで括りURLエンコードする必要があります。例えばテーブル名が「タスク」の場合、「"タスク"」をURLエンコードした「%22%E3%82%BF%E3%82%B9%E3%82%AF%22」を入力してください。
入力後、画面下部にある[テーブル設定]をクリック
レスポンスプレビューでJSON が返ってくることを確認し、[次へ]をクリック
繰り返し要素に[/value]を選択し[次へ]
連携したいカラムを選んでいただき[次へ]
任意のテーブル名を設定し[確認]
次に[テーブル詳細]内の[ページネーション]タブで次のように設定し、API取得上限の1万件を超えた場合でもそれ以降のデータが取得できるようにします。
- Type: URL
- URL Source: Response Path
- Response Path: /@nextLink
最後に画面右上の[保存]をクリックしてFileMaker の接続設定は完了です。
Snowflake 接続設定
FileMaker の接続設定と同様、サイドバーにある[接続] -> [接続を追加]と遷移しSnowflake を選択
各入力フォームに次の値を設定し、設定完了後に画面右上の[作成およびテスト]をクリックし接続が成功するのを確認する
- 接続名: 任意の値
- Warehouse: 連携先のSnowflake ウェアハウス名
- URL: 連携先Snowflake のURL
- Database: 連携先のSnowflake データベース名
- Auth Scheme: 環境に合わせ認証情報を設定
ジョブ設定
サイドバーにある[ジョブ] -> [ジョブを追加]と遷移し、入力フォームそれぞれに次の値を設定
- 名前: 任意のジョブ名
- データソース: {FileMaker 接続設定}で設定した接続
- 同期先: {Snowflake 接続設定}で設定した接続
- 種類: 標準
[タスク]タブに遷移し[タスクを追加]をクリックし、{FileMaker 接続設定}で設定したテーブル名を選択
画面右上の[実行]をクリックすることでSnowflake にFileMaker のデータを連携することができました!

まとめ
今回のケースではFileMaker -> Snowflake への連携ですが、同様のやり方でその他のDB, DWH などへもデータ連携することができます。FileMaker からのデータ連携でお困りの場合、是非一度CData Sync の無償トライアルをお試しください!