外部キーから参照されているテーブルに対して pt-online-schema-change を使う

pt-online-schema-change では外部キーから参照されているテーブルに対して使用する場合に --alter-foreign-keys-method を指定する必要があります。
--alter-foreign-keys-method には rebuild_constraints を指定することが推奨されているんですが、子テーブルの ALTER に時間がかからなければという但し書きがあります。

Systems Manager の Maintenance Windows によるメンテナンスタスクの定期実行と Datadog の Downtimes API によるアラートの抑止

ECS の Enhanced Container Dependency Management でタスク終了時のコンテナの依存関係を考慮する

先日次のような記事を書きました。
ECS タスクの終了時にコンテナの依存関係が考慮されない問題を解決するコマンドを作った

Launch Templates と Auto Scaling Groups で Spot Fleet Requests みたいなことをする

半年ぐらい前に、launch template と auto scaling group を組み合わせることで、オンデマンドインスタンスとスポットインスタンスを混ぜたり、インスタンスタイプを混ぜたりすることができるようになりました。
cf. Scale Amazon EC2 Instances across On-Demand, Spot and RIs in a Single Auto Scaling Group

Amazon Elastic MapReduce (EMR) ではじめる Presto/Trino 入門

Presto/Trino 1は日本語の入門書がなく、「Presto/Trino を運用することになったけど何から勉強すれば良いかわからない><」という人も多いのではないかと思います。そこで、Presto/Trino を運用する時にこの辺の内容を知っていれば、よりスムーズにキャッチアップできたかなぁと思うことをまとめてみました。
Hive connector を使いたいので、Hive と Presto の環境構築をサクッと行える Amazon Elastic MapReduce (以降 EMR) で実際に手を動かせればと思います。
以降 Presto/Trino ではなく Presto と表記しますが、Trino は元々同じソフトウェアであるため、Trino でも当てはまる内容がほとんどのはずです。

  1. Presto は Facebook が開発しているものと、2019 年に発足された Trino Software Foundation(旧 Presto Software Foundation)によって開発されているものが存在しましたが、後者は Trino に改名されました 。EMR では前者は Presto または Presto(DB) と表記され、後者は PrestoSQL と表記されています。 

Hive on Tez で Parquet を Snappy で圧縮すると起きる Container is running beyond physical memory limits. を解消する

Hive で次のようなエラーに遭遇することがあるかと思います。

ECS タスクの終了時にコンテナの依存関係が考慮されない問題を解決するコマンドを作った

ECS タスクは、起動時にはコンテナの依存関係を考慮するのに終了時は全く考慮しません。次のコメントからもよくわかります。

一定間隔の滞在ユーザ数を高速に求める Presto SQL

例えばアクセスログに各ページにアクセスした時刻と離脱した時刻が入っているとします。次のようなイメージです。

upstart で start した job の設定を変更するには一度 stop する必要がある

upstart で start した job の設定を変更した後に反映するには、次のように stop して start しなければいけません。restart ではダメです。restart でダメな理由は後述します。

Rollbar で Rack::QueryParser::InvalidParameterError が通知されるのを抑止する

Rails のエラーを捕捉するのに Rollbar を使っている場合、次のような通知を受け取ることがあります。

広告