2018-01-01から1年間の記事一覧
質問されてどうなのか知らなかったので、ベンチマークを取ってみた。 - ruby 2.2.10 - macOS - 3.3 GHz Intel Core i7 コード(sample利用) require 'benchmark' Benchmark.bm 10 do |r| r.report "#r+" do result = '' 1000000.times do chr = [*'a'..'z'].s…
外部コマンドで、ファイルパスを渡す際にエスケープが必要になり探していたら見つけた。 前提 ruby 2.2.10 rails 4.2.x.x コマンドまたは引数の文字列をエスケープ require 'shellwords' file_name = 'tmp/file_name1(1).txt' system "ls -lShellwords.es…
Batchを作ることになったので、そちらを書いていきます。warningを解消する際にすでに公開していたバッチですが、コードを改善したのでまた載せていきます。 サンプルコードは参考までにしてください。 前提 Rails(4.2.x) Ruby(2.2.10) RedShift S3 検討・方…
調べていたので、書いていきます。 前提 Ruby 2.2.10 外部コマンドの呼び出し 実装で利用したは、#system, #`を利用していて、コマンドを実行して返却値、ステータスは無視するケースと返却値を利用するケースで分けて使っています。 Kernel.#system 引数を…
EC2のメモリ使用量を継続的に監視するために、cloudwatchに転送するAWS公式で出しているスクリプトを利用した。new_rericが入ったんだけれども、みれる状況じゃなかった。(諸事情) 前提 AWS EC2 CloudWatch Cloud SNS 方針 EC2のメモリ・スワップ使用量は、E…
コマンドファイルを作っている際に出てきたので、警告を表示しないようにする。 前提 mysql: 5.7.18 ruby 2.2.10 Rails(secret.ymlに依存していて、環境変数で書かれていない) 解決方法 confファイルを利用して、client情報を渡すことにする。 confファイル…
インフラの準備を分割して書いていきます。 前提環境: ElasticCache(Redis 4) AWS EC2(Amazon linux) AWS(Amazon Linux) 東京リュージョン 検証環境として、立てていきます。(EC2はのぞく) EC2 EC2は立てている前提で、サーバにsshで接続して、redis(client)…
環境の違いでスクリプトを変えたので、そちらを載せます kikeda1104.hatenablog.com kikeda1104.hatenablog.com SQLファイル -> sh # tab区切りでファイル出力: dump.shとする PASSWORD=password mysql -u username -p"$PASSWORD" -h hostname db -e "select…
Redshiftの環境構築について書いていきます。 前提 RedShift データサイズが増加量を計測して毎月1GB増える 将来的にデータサイズが、クラスターのストレージを超える可能性も検討してサイズ変更ができるように設計 Snapshotを利用したデータサイズの変更に…
コーポレートサイトを作っていて検証として公開したいが、閲覧の制限をかけたかったので急ぎめでBasic認証をかけました。 前提 httpsでの公開まで終えている Lamdba CloudFrontと連携させてBasic認証を行う 環境構築 Lamdbaで、リュージョンをバージニア北部…
前回の記事の続きでRedShiftのチューニング(ソートキー)を定義します。今回は結論はなしで、ベンチマークを残します。 前提 RedShift PostgreSql ソートキー RedShiftでは、ソートキーを元に並び替えてデータをディスクに格納します。 最新のデータが最も頻…
PostgreSQLクライアントから操作する際に、クエリの実行時間が、表示されていない。計測で必要だったので設定を調べた。 前提 Mac OS PostgreSQL(Client) RedShift コマンド \timing db=# \timing Timing is on. # COPYコマンド INFO: Load into table 'tabl…
前回の記事では、テーブル定義まで進めて検証しましたが、今回はエンコードについて書いていきます。 前提 RedShift エンコード メリットは下記の通りです。 圧縮は、データの格納時にそのサイズを小さくする列レベルの操作です。圧縮によってストレージスペ…
前提条件 AWS EC2 Amazon linux Unicorn + Nginx + Rails(4.2) + Capistrano 問題 デプロイした後にWeb + Appサーバにアクセスすると、release versionが古いバージョンにアクセスしている(しかもviewsのみ)そのrelease versionは削除されているので、templa…
以前から利用しているサーバに対してクライアントには設定(.ssh/config)していたが、サーバに始めて接続する際に、オプションを設定していなかった。 サーバ接続中に起きたので、再設定して、sshした。 接続状態を維持したいので、ServerAliveIntervalとServ…
今回は、workerのテストを書いていきます。 前提環境 Rails 4.2.x Ruby 2.2.10 Redis Rspec CI(circle ci) Redis Worker Classの場合 方針を決めます。retryの上限数を超えた場合のテストも書きたいので、(Dead Job Queueに移す前に通る # app/workers/high_…
前回mysqlからtsvファイルとしてダウンロードしたファイルをredshiftにデータをロードする。検証目的なので、batch処理は後日。 前提環境 Redshift(AWS) MySql(5.7系) macOS 10.13.5 PostgreSQL 9.6.2 前回の記事でtxtファイルをs3アップロードしている Reds…
RedShiftへのデータロードで、テーブルからcsvでダウンロードしてs3にアップロードします。txtファイルの出力とs3のアップロードについて書いていきます。 txtファイル SQLファイルを作る # dump.sql select * from c into outfile '/tmp/table_name.txt' FI…
前回の続きで、sidekiqのデプロイについて書いていきます。 前提環境 rails 4.x ruby 2.2.10 capistrano 3.5 capistranoを利用していたので、capistrano/sidekiqをGemに追加します。 unicorn, pumaなどの設定は無視していきます。 実装 # Gemfile group :dev…
非同期処理を取り入れる提案をして、採用されたので構築していました。アウトプットとして何回かに分けて記事を書いていきます。 前提環境 Mac OS sidekiq(non pro, non enterprice) redis rails 4.2.x ruby 2.2.x 前提環境の背景を話すと、Rails 5系にアッ…