2020-01-01から1年間の記事一覧
Serverless Frameworkを触ってみました。 AWS LambdaをCloudWatchからスケジュール起動します。Lambdaでの処理内容はS3にアクセスしてログに残すのみです。処理はRubyで書きます。 追記:PythonやJavaScriptでの例は後日書きました。→ Serverless Framework…
TDBという時刻系がなんなのかを調べ始め、整理したメモです。TDBまで遠かった・・・。前日の記事に引き続き、時刻に関する記事です。 視太陽時、apparent solar time 日時計 太陽が真南(南半球ならば真北)を通過する瞬間を正午とする時刻 経度によって違う…
タイムゾーン情報の有無に関わる、日時またはタイムスタンプを扱うデータ型について、4つに分類して整理しました。 A: 「0時」 B: @0時 C: @0時 +09:00 D: @0時 日本時間 Aは、ロンドンの0時も東京の0時も同じ「0時」として表現します。ロンドンの0時と東京…
JPG画像のサムネイルを作成する処理をPythonで書きました。 Pillowというライブラリで画像ファイルを扱えます。もともとはPILというライブラリがあったのですが、PILはPython 2までしかサポートしておらず、PILからフォークしたPillowがいまのデファクトとい…
AWSのDynamoDBを初めて触ったときの感想というか、つまづいた点を記録しておきます。 その1 その2 その3 CloudFormationのテンプレートのサンプル DynamoDBにPythonからアクセスするサンプルコード その1 CloudFormationでDynamoDBのテーブルを作成しようと…
AWSのAPI Gatewayを通信がインターネットに出ていかずにVPCの中だけに限定するには、以下の設定が必要です。 API Gateway用のVPCエンドポイント作成 API GatewayのリソースポリシーでVPCエンドポイントからのアクセスのみに制限 API GatewayのEndpoint Type…
CloudFormationでAWSのAPI Gatewayを使った開発をするときの話。 初めてCloudFormationをデプロイするときには、API Gatewayのデプロイも実行されるので、すぐにAPIが使えるようになります。しかしその後テンプレートファイルを更新してCloudFormationでデプ…
CloudFormationでAPI Gatewayを作成する際の AWS::ApiGateway::Stage と AWS::ApiGateway::Deployment の役割分担というか違いがよくわからないまま、適当なサンプルを使いまわして雰囲気で使っていたのですが、やっとわかってきたので、メモです。 AWS::Api…
前半は復習としてパラメータが文字列の書き方、後半が本記事の本題で配列型にする方法です。 パラメータが文字列の場合 パラメータが配列の場合 パラメータが文字列の場合 テンプレートファイルに以下のように書くと aws cloudformation deploy 実行時にパラ…
AWS RedshiftのFederated QueryはRedshiftからRDSやAuroraのPostgreSQLテーブルにアクセスできる機能です。 PostgreSQLにアクセスできるのであれば、似たインターフェースであるRedshiftにもアクセスできるんじゃないかと期待して試しました。Redshift同士の…
AtCoderの9回目の参加となった2020/11/15のABC183の記録です。 パフォーマンスは、まだ勝手のわかっていなかった初参加を除くと最悪値になってしまいました。時間がかかってしまったのが敗因です。 2問目は書いたコードが違うディレクトリに保存されているこ…
vue cliでプロジェクトを作成すると public/index.html にはページタイトルとして以下のように記述されます。 <title><%= htmlWebpackPlugin.options.title %></title> HTMLページのタイトルを付けるためにこの htmlWebpackPlugin.options.title の値を設定するには、プロジ…
AtCoderの8回目の参加となった2020/11/08のABC182の記録です。 25分ほどで4完でした。5問目は少し考えて計算量を抑える方法を思いつかずあきらめました。6問目は解法がわからないままタイムアップでした。 そろそろ後半の難しい問題も解けるようにならないと…
Dockerを動かしたら、以下のエラーが出てしまいました。 docker: Error response from daemon: Get https://registry-1.docker.io/v2/: x509: certificate signed by unknown authority. プロキシが必要な環境にも関わらずDockerにプロキシ設定がなかったた…
緊張感と集中力を付けるために過去問もバーチャル参加しました。2020/11/07にバーチャル参加したABC171の記録です。 30分ほどで5完でした。5問目までは解法をほとんど考えることなく、コードを書いていただけでした。6問目が解法がわからず、すぐにあきらめ…
検証目的でS3にダミーファイルを大量に保存するスクリプトを書きました。 スクリプトはRubyとBashの組み合わせです。 Rubyでput_object Rubyスクリプトで3万個保存 Bashスクリプトで36万個保存 動かす Rubyでput_object RubyでAWSを操作するには aws-sdk の…
Pythonのboto3を使って、S3にオブジェクトとユーザ定義のメタデータを保存するサンプルコードです。 import boto3 # default以外のprofileを使う場合はここで指定 profile = "default" session = boto3.session.Session(profile_name = profile) client = se…
AtCoderの7回目の参加となった2020/11/01のABC181の記録です。 今回初めて、いまさらではありますが、atcoder-cliを使用しました。 30分ほどで4完でした。残り1時間あまり5問目に取り組みましたが、疲れてきてコードを書ききれませんでした。 問題 結果 言語…
PostgreSQLのテーブルをAWS Glue CrawlerでクロールしData Catalogにどんなデータ型のテーブルができるかを確認しました。 Data Catalogのデータ型にどうマッピングされるかについては、過去にもやっています。S3上のParquetファイルをクロールさせた場合は…
2020/11/01にバーチャル参加したABC180の記録です。日程的に参加できなかったコンテストに後日バーチャル参加しました。 55分ぐらいで4完でした。終了後5分ぐらいで5問目ができました。 問題 結果 言語 A ○ Ruby B ○ Scala C ○ C++ D ○ Java E 競技後にJava …
AtCoderの6回目の参加となった2020/10/11のARC105の記録です。 15分ぐらいで2完でした。 3問目と4問目を競技中考えましたが、解法を見いだせませんでした。 4問目(D)は解説を見て理解したときの衝撃が凄まじかったです。こんな簡単に解けるとは。 問題 結果 …
さまざまなデータ型を含むParquetファイルを作成し、AWS Glue Crawlerでクロールさせてみて、Data Catalogにどんなデータ型のテーブルができるかを確認しました。 結果 Parquetファイルのスキーマ Glue Crawlerの結果 Athenaから参照 結果 先に結果をまとめ…
AWS RDSのディスク残り容量をCloudWatchで監視し、しきい値を超えたSNSでアラームを飛ばす仕組みをCloudFormationで作成してみました。 前提 RDSインスタンスは作成済み (本記事はPostgreSQLで試しました) アラーム通知先となるSNS Topicは作成済み CloudFor…
AtCoderの5回目の参加となった2020/10/10 HHKB2020の記録です。 3完でした。 4問目(D)は解法はわかったものの、コードを書ききれずにあきらめてしまいました。 5問目(E)は後日解説を見ずに解けました。競技中Dを飛ばして先にEをやっていればよかったです。 …
Parquetファイルを生成するサンプルJavaコードを書きました。 以下の記事を参考にしました。 How To Generate Parquet Files in Java - The Tech Check ソースファイル Main.java pom.xml 実行 Parquetファイルの中身を確認 ソースファイル Javaのソース1つ…
以前、AWS RDS PostgreSQLのクエリログをawscliで取得するワンライナーという記事で、RDSのインスタンスにあるログファイルを一括で取得する方法を書きました。しかしこのワンライナーでは、1MBを超えるログですと先頭の1MBしか取得できず、途切れてしまいま…
以前の記事(PostgreSQLの各テーブルのレコード数とデータ容量の概数を調べるには)でテーブルごとのサイズを調べる方法を書きましたが、PostgreSQLのデータベースごとのサイズを調べる方法も併せて書いておきます。 データベースのサイズ SELECT pg_database_…
Parquet Toolsを使おうとするたびにコンパイルエラーに悩んでいる気がします。 現時点(2020/10/25)でコンパイル成功したパターンを書いておきます。 前提 ダウンロードとビルド 使ってみる catコマンド headコマンド schemaコマンド metaコマンド dumpコマン…
AtCoderの4回目の参加となった2020/10/03 ARC104の記録です。 2完でした。 2問目のACまでに20分も消費してしまいました。 その後約40分をCに時間かけ、コードを書きましたが、最後まで書ききれずに、提出することなくあきらめてDに移りました。 Dでも残り時…
curlコマンドまたはwgetコマンドを使い、HTTP(S) POSTメソッドのリクエスト本体でバイナリを送る方法です。 httpbin curlコマンド wgetコマンド httpbin HTTP(S)の通信をテストするには httpbin というサイトが便利です。 httpbin.org 以下のようにhttpbinに…