前置き
前回の記事からの続きです。以下のページにある内容をPowershellの Invoke-RestMethod コマンドレットで実施していきます。
https://qiita.com/math1101/items/311277789868ebd07835
MAP再作成
例によって例のごとく、以下のコードをPowershellのプロンプトへ順次張り付けていきます。新しく作成したnewmap.jsonを確認すると、TimeStampのデータ型が無事dateになっていることが確認できます。あとはデータを投入するだけで完了です。
実は先に挙げた元記事で、一番変更したかったのもここです。
元の内容は、CSVをBULK用のJSONファイルに変換しており、その変換処理だけで数時間掛かるので、気軽に試せなかったんですね。
でも、前回の記事にて示したように、CSVから直接BULK登録が可能なので、その工程を省いてしまえばいいのです。
この処理は、再利用性を考慮してスクリプトファイルとして保存しましょう。
※Powershellの実行ポリシーを変更していないと動かないのでまだの人は Set-ExecutionPolicy でググってください。
以下の内容を「UpdateESFromCsv.ps1」というファイル名で、フォルダー「C:\Elastic\data」に保存します。
前回の記事で5件だけ登録した処理を、スクリプトファイルに変更し、一定件数毎にBULK実行するように改定したものになります。5000件であれば、10以内にはBULK実行するのではないでしょうか。
余り応答がないと不安になるでしょうし、配列に突っ込むためのメモリーも無尽蔵ではないので上限値を設けています。5000でメモリーが足りないという方は$BulkMaxを1000なりに値を変更してください。
そして、以下のコードを実行すれば順次CSVファイルを読み取ってElasticsearchへ登録してくれます。
ここの内容は全CSVファイルを先のスクリプトで順次処理しているだけですので、詳細な説明は割愛します。
結果が126040件になってれば同じ結果です。うまくいかなかった人は頑張って原因を探してください。
三回に渡ってお送りしましたが、件の記事をForkした箇所は以上となります。お付き合いいただきありがとうございました。
なお、Kibanaの内容はWebUIですので、Windows関係ないし、変更点もありません。
元記事を参照して試してみてください。
0 件のコメント:
コメントを投稿