Repro Tech Meetup で「Repro における Presto の安定化・パフォーマンス改善の歩み」を発表しました
Repro Tech: 実践・並列分散処理基盤の自社枠として、自分が Repro に入社してから Presto 関連で行った改善について発表しました。
外部キーから参照されているテーブルに対して 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 でも当てはまる内容がほとんどのはずです。
-
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 でダメな理由は後述します。