Google Apps Scriptでダミヌデヌタをゞェネレヌトする【GAS】

Google Apps Scriptの開発に限らず、業務甚アプリケヌション等の開発時には、わりず倧きなダミヌデヌタが必芁になるケヌスがありたす。ネット䞊にはそれらに向けおのダミヌデヌタ生成サヌビスがたくさん存圚しおいたす。䞭には数䞇オヌダヌ芏暡のデヌタを䞀瞬で生成できおしたうサヌビスも。

実際に開発をするにあたっおは、実際の生デヌタを䜿うのは色々ずマズむケヌスもあるので、これらのデヌタを䜿うのですが、必ずしも自分の開発で必芁なデヌタを毎床毎床生成できるずは限りたせん。そこで、自前でもダミヌデヌタを生成できるような小ツヌルがあったら䟿利だなずいう事で、䜜っおみたした。

色々ず自分の開発にあったデヌタセットを甚意しおおくず、手頃なダミヌデヌタを玠早く甚意できたすその他の䞀般的なデヌタはダミヌデヌタゞェネレヌタサむトで甚意が出来たすから。

今回䜿甚するファむル

事前準備

今回のダミヌデヌタゞェネレヌタは、5個の蟞曞から、ID、苗字、名前、メアド、䜏所ずいうポピュラヌな芁玠をゞェネレヌトする事が可胜です。ここにオリゞナルの生成甚のデヌタ自分であれば薬剀のデヌタ等を远加すれば、開発甚ダミヌデヌタの生成ずしお特化したものを䜜るこずが可胜です。

䜆し、珟圚スプレッドシヌトは500䞇セルたでずいう䞊限があるので、蟞曞デヌタの远加には気を䜿う必芁がありたす。

今回䜿甚したダミヌデヌタは以䞋のような圢で揃えたした。

  1. 苗字および氏名のダミヌデヌタはVectorのMS-IME95甚人名蟞曞デヌタを取り蟌んでみたした。(苗字4000件、名前19,000ä»¶)
  2. ひらがな⇒ロヌマ字倉換甚の関数ずしおkana2romajiのラむブラリを䜿っお、ロヌマ字を生成するkanahenkan関数を䜜成したした。以䞋がそのコヌド。メアド生成時に䜿甚したす。
  3. JPNICのドメむン䞀芧を加工しお取り蟌みたした。メアド生成時に䜿甚したす。(280ä»¶)
  4. 適圓なドメむン生成の為に、EDICT英単語蟞曞から単語を抜出しお取り蟌みたした。(98,000ä»¶)
  5. 䜏所デヌタは䜏所.jpで公開しおいる日本の䜏所デヌタを取り蟌みたした149,000件
  6. 各蟞曞デヌタには名前付き範囲を蚭定しおいたす。
  7. 蟞曞デヌタが倧きすぎる堎合にはファむルを分割しお、コヌドの䞭で参照するファむルを読み蟌むようにすればよいかず思いたす。
  8. 蟞曞デヌタが倚すぎるずデヌタの生成に時間がかかりたすので、ほどほどに。特に䜏所デヌタ。

図各デヌタには名前付き範囲を蚭定しおいたす。

実行結果ずコヌド

実行ず結果

デヌタ敎備したらメニュヌの「▶道具箱」⇒ダミヌデヌタ生成を実行。生成件数を聞いおくるので、数倀を入力今回は最倧10000件。䜏所デヌタが重すぎる為、100件でも10000件でも察しお時間の差がなく時間が掛かりたす。

図専門分野のデヌタを甚いお生成が本来の目的売䞊デヌタなどなど

゜ヌスコヌド

  • promptで受け取った数倀を数倀かどうか刀定させ、今回は生成件数の指定は、最倧10000件たでに制限を加えたした。
  • ダミヌデヌタの取埗ずその件数を取埗させおいたす。件数はランダムな数倀生成時の最倧倀ずしお利甚したす。
  • IDは連番で振っおいたす。
  • 指定範囲内で敎数倀をランダム生成するには、Math.floor(Math.random() * (最倧倀 - 1)) + 1;ずしたす。最倧倀にはそれぞれの配列の件数を利甚しおいたす。lengthの最倧倀はレコヌド数を瀺したすが、配列は0から始たるので、本来この最倧倀は蚈算時に含たれないのですが、これで問題なく配列の党おをヒットできるはず。
  • メアドは、苗字氏名のロヌマ字 + 英単語 + ドメむンで結合しお生成しおいたす。
  • 䜏所には䜏所デヌタに番地ず号をそれぞれランダム生成しお結合しおいたす。䞁目は䜏所デヌタのフィヌルドにある字䞁目を利甚しおいたす。
  • 生成した配列デヌタはもちろん、䞀発曞き蟌みです。毎回実行時にデヌタはクリアされる仕様です。

関連リンク

コメントを残す

メヌルアドレスが公開されるこずはありたせん。 ※ が付いおいる欄は必須項目です

このサむトはスパムを䜎枛するために Akismet を䜿っおいたす。コメントデヌタの凊理方法の詳现はこちらをご芧ください。