プログラマ38の日記

主にプログラムメモです。

【Salesforce】EventLogFileのユニークキー

監査ログとしてEventLogFileの内容をデータベース、Database.com、AnalyticsCloudなど別のシステムに蓄積したいという要件があると思います。

 

ユニークなキーが欲しいなと思い調べたのですが、結論として、イベントログのCSVの中には、キー項目はありませんでした。(ある程度の項目を連結すればユニークにはなると思いますが、それもちょっと違うかなと思いました)

 

一瞬、「REQUEST_ID」項目がユニークかなと期待したのですが、重複しているレコードがあり使えませんでした。

 

なので、ユニークな項目は処理の中で用意することになりますが、個人的には次がいいかなと思います。

 

「TIMESTAMP」項目の先頭8桁(yyyyMMddで取得できます)とCSVの行番号を連結

 

行番号は処理の中で作り出さないといけないのですがこれならユニークになるので、同じファイルを2回取り込んでしまっても、upsertの動きが実現できます。

 

※余談ですが、TIMESTAMP項目はGMTなので、日本時間で使う際には9時間足す必要があります。