kikeda1104's blog

備忘録・技術に関することを書いています。(webエンジニア)

2018-07-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…

shellコマンドのエスケープ[Ruby]

外部コマンドで、ファイルパスを渡す際にエスケープが必要になり探していたら見つけた。 前提 ruby 2.2.10 rails 4.2.x.x コマンドまたは引数の文字列をエスケープ require 'shellwords' file_name = 'tmp/file_name1(1).txt' system "ls -lShellwords.es…

Redshiftへのデータ流し込み(Batch)

Batchを作ることになったので、そちらを書いていきます。warningを解消する際にすでに公開していたバッチですが、コードを改善したのでまた載せていきます。 サンプルコードは参考までにしてください。 前提 Rails(4.2.x) Ruby(2.2.10) RedShift S3 検討・方…

Rubyからシェルコマンドを実行する(Kernel.#system ..etc)

調べていたので、書いていきます。 前提 Ruby 2.2.10 外部コマンドの呼び出し 実装で利用したは、#system, #`を利用していて、コマンドを実行して返却値、ステータスは無視するケースと返却値を利用するケースで分けて使っています。 Kernel.#system 引数を…

AWSのメモリ使用量のモニタリング

AWS

EC2のメモリ使用量を継続的に監視するために、cloudwatchに転送するAWS公式で出しているスクリプトを利用した。new_rericが入ったんだけれども、みれる状況じゃなかった。(諸事情) 前提 AWS EC2 CloudWatch Cloud SNS 方針 EC2のメモリ・スワップ使用量は、E…

mysql([Warning] Using a password on the command line interface can be insecure.)

コマンドファイルを作っている際に出てきたので、警告を表示しないようにする。 前提 mysql: 5.7.18 ruby 2.2.10 Rails(secret.ymlに依存していて、環境変数で書かれていない) 解決方法 confファイルを利用して、client情報を渡すことにする。 confファイル…

sidekiq + redisの構築(Rails 4系) 4-1

AWS

インフラの準備を分割して書いていきます。 前提環境: ElasticCache(Redis 4) AWS EC2(Amazon linux) AWS(Amazon Linux) 東京リュージョン 検証環境として、立てていきます。(EC2はのぞく) EC2 EC2は立てている前提で、サーバにsshで接続して、redis(client)…

Redshiftへのデータの流し込みについて

AWS

環境の違いでスクリプトを変えたので、そちらを載せます kikeda1104.hatenablog.com kikeda1104.hatenablog.com SQLファイル -> sh # tab区切りでファイル出力: dump.shとする PASSWORD=password mysql -u username -p"$PASSWORD" -h hostname db -e "select…

Redshiftの環境構築

AWS

Redshiftの環境構築について書いていきます。 前提 RedShift データサイズが増加量を計測して毎月1GB増える 将来的にデータサイズが、クラスターのストレージを超える可能性も検討してサイズ変更ができるように設計 Snapshotを利用したデータサイズの変更に…

Basic認証(S3 + CloudFront + Lamdba)

AWS

コーポレートサイトを作っていて検証として公開したいが、閲覧の制限をかけたかったので急ぎめでBasic認証をかけました。 前提 httpsでの公開まで終えている Lamdba CloudFrontと連携させてBasic認証を行う 環境構築 Lamdbaで、リュージョンをバージニア北部…

Redshiftのソートキー

AWS

前回の記事の続きでRedShiftのチューニング(ソートキー)を定義します。今回は結論はなしで、ベンチマークを残します。 前提 RedShift PostgreSql ソートキー RedShiftでは、ソートキーを元に並び替えてデータをディスクに格納します。 最新のデータが最も頻…

クエリ実行時間の表示(PostgreSQL, RedShift)

PostgreSQLクライアントから操作する際に、クエリの実行時間が、表示されていない。計測で必要だったので設定を調べた。 前提 Mac OS PostgreSQL(Client) RedShift コマンド \timing db=# \timing Timing is on. # COPYコマンド INFO: Load into table 'tabl…