SalesforceのDBへの一括インポート、エクスポートツールである、Data Loaderに関して、調べたので色々備忘録です。
Salesforceでデータをダウンロードしようとすると、レポート機能を使うか、Data Loaderを使うかになると思います。
特に大量のデータを一括で扱う場合は、Data Loaderを利用します。
Data Loader入門
Data Loaderとは?
データを一括でインポート、またはエクスポートするためのクライアントアプリケーションです。
SOQLという、SQLに似た構文を持つ言語を利用します。
Salesforceで大量データのインポート、エクスポートを行う場合は、Data Loaderは避けられないと思います。
インストール手順
インストーラのダウンロード
セールスフォースの画面から、右上の設定を選択します。(ハンズオン環境でも可能です。)
左上のクイック検索ボックスに「データローダ」と入力します。入力すると絞り込みが行われるので、左側メニューのデータローダを選択します。
データローダを選択すると、右側に「Windowsでのデータローダのダウンロード」、「Macでのデータローダのダウンロード」が表示されるので、インストールする環境のインストーラをダウンロードします。
インストーラの実行
ダウンロードしたインストーラを実行し、利用規約に同意します。
使用しているPCのユーザが管理者権限を持っている場合はYESを選択します。
管理者権限を持っていない、または分からない場合はNo, or I’m not sureを選択します。
コンポーネントを選択します。特に指定が無ければデフォルトで大丈夫です。
インストール先を選択します。特に指定が無ければデフォルトで大丈夫です。
しばらく待つと、以下の画面が表示されます。
以上でインストール完了です。
その他
Data Loaderの実行には、Javaの32bit版が必要です。
Javaの32bit版がインストールされていない場合は、Data Loader起動時にOracle社のサイトが開くのでダウンロードしてインストールしましょう。
環境へのアクセス
Data Loaderをインストールしたのでクライアントアプリケーションから対象の環境へのアクセス方法です。
今回は、TrailheadのPlayground環境にアクセスしています。
最初にPlayground環境にアクセスしようとした所、エラーが出たので備忘を兼ねます。(Playground環境は、Production環境の扱いになるようです。)
Playground環境へのアクセス方法
Data Loaderを起動します。
EnvironmentでProductionを選択します。(Playground環境は、Productionにしないとアクセスできません。最初Sandboxを選択していたので、ログインできませんでした。)
Log inボタンを押下すると、ユーザ名、パスワードの入力欄が表示されるので、入力します。
初回アクセス時は、確認用のコードを確認されるので、受信した確認コードを入力しましょう。
アクセス許可を確認されるので、許可を押下します。
無事ログインできました。
SOQLでの日付の指定方法について
Data LoaderはSOQLというSQLと似た言語を利用してデータを抽出できます。
SQLが分かれば何となく調べながらで使えると思います。
また、SQL同様データの絞り込みには、Where句を指定します。
Data Loaderを使用して、日付を条件にSalesforceからデータを取得しようとした時、日付をどんな形式で入力すれば良いのか分からなかったので、調べました。
日付を条件の指定方法
以下の様な形式で、条件を指定します。(構文を間違えると、入力していたSOQLがリセットされて対象のオブジェクト選択からやり直しなのでショックが大きいです。)
Where 項目名 > 2017-04-01
覚えておく必要があるのは以下2点です。
- ‘(シングルクォーテーション)や”(ダブルクォーテーション)は不要
- YYYY-MM-DD形式
以下に参考になるページのURLを残します。
https://help.salesforce.com/articleView?id=000005553&language=ja&type=1
日付がずれる問題の対応
インストール後デフォルトの状態で、Data Loaderからデータを登録した場合、日付がずれるという事象が発生します。
対応方法をまとめます。
発生事象
Data Loaderを使用して、CSVファイルをInsertした所、1日前の日付で登録された。
例)2017/4/1を登録しようとすると、2017/3/31で登録された。
原因と解決方法
原因
原因は、Data Loader側の設定でした。
Saleforceのデータベースでは、日付型、日付時間型項目のデータは内部的に全てGMT(グリニッジ標準時)に変換され格納される仕様になっています。
今回はData Loaderのタイムゾーンの設定が「Asia/Tokyo」となっていたため、GMT(+9:00)から、GMTに自動変換を行っていました。
登録していたデータ日付型であり時間を持っていなかったため、00:00:00と判断され、その9時間前である、前日の15:00:00に変換されました。その後日付に変換され前日が登録されたようです。
変換前
2017/4/1 00:00:00 (GMT(+9:00))
変換後
2017/3/31 15:00:00 (GMT)
解決方法
Data Loaderの設定からタイムゾーンをGMTに変更すれば解決しました。
Settingを選択して、Setting画面を開きます。
Time ZoneがAsia/Tokyoになっているのを確認します。
Time ZoneをGMTに変更します。
参考
以下に参考サイトのURLを残します。
https://developer.salesforce.com/forums/?id=906F00000009B5mIAE
https://help.salesforce.com/articleView?id=000047804&language=ja&type=1
まとめ
Data LoaderはSQLを使った事があれば取っつきやすく、習得も早いと思います。
DBがクラウド上に存在するが故のタイムゾーンの問題等、固有の問題以外は調べながらですぐに使えるようになると思います。
Data Loaderの固有の問題は、直面する度に本ブログに記載する予定です。
コメント