ant-in-giant Memoris

sogaoh の日々のあれこれ(2024〜)was: 勉強会などへの参加速報中心

(参加メモ)第10回 PostgreSQLアンカンファレンス@東京

  • 開催概要
    • 開催日時:2/2(土)午後(13時半~17時半くらい)
    • 規模感:20分セッション×10本×3部屋(予定)
    • 参加者:50~60名くらいを想定
    • プログラム:当日調整します
  • 場所

  • Twitter HashTag

Thoughts

  • アンカンファレンス が初めてだったのだが、とても楽しい形式と感じた。
    • 今後はガシガシ参加していきたい。
    • この形式に向いた会場。トイレがロック解錠必要なのには面食らったが。
      • 飲み物の自販機、選択肢が多彩でかなりの低価格。
  • 貴重な事例が聞けた。とてもありがたい。
    • DB運用でのあれこれが、ふんだんに。

プログラム

20190202_program.jpg (940.5 kB)

勉強会前の時間が空いたのでアンカンファレンスの様子

RDBアンチパターン

14:20 - 14:40 (曽根さん)
(資料は見つけたら追加)

  • フラグの闇
  • データベースの迷宮
  • 転んだ後のバックアップ
  • タイムゾーンの業
  • まとめ
    • DBの問題は忘れた頃に
    • サーバーの問題は休日に
    • アプリケーションの問題は納期前に
    • 脆弱性の発見は連休中に

勉強会のほうの様子

PostgreSQLの暗号化について

14:40 - 15:20 (坂田さん) [^1]

  • データベースを安全に扱う

    • データベースの脅威(への対策)
      • 暗号化
      • アクセス制御
      • 監査
    • 暗号化と鍵管理
      • 常にセットで考える必要がある
  • データベース暗号化

    • 方法
      • PostgreSQLが提供
      • ベンダが提供(PowerGresなど)
      • OSが提供
    • ツール
      • pgcrypto
      • TDE for PG
        • エグゼキューター層
      • PowerGres Plus
        • ストレージマネージャ層
      • dm-crypt
        • OS層
  • 驚異のモデル化

    • DB内からの不正参照
    • DB外からの不正参照
    • 物理的な不正取得
  • 暗号化が必要なデータだけを暗号化するべき

  • 暗号化性能の組み合わせ

    • オーバーヘッドをもっとも小さくする組み合わせ
      • 範囲:列
      • 処理層:OS
  • アプリケーションでの対応

    • 難しさ
      • ...
    • 透過的データ暗号化
      • TDE for PG
      • PowerGres Plus
  • 暗号化と鍵管理

    • 鍵管理についての要件
      • PCI-DSS
        • 3.5 鍵管理について
        • 3.6.5 取り換えについて
    • 鍵管理システム(KMS)
    • 鍵ローテーションを考慮して暗号化方式を選択する
  • PostgreSQL セキュリティ機能強化

    • 9.5
      • ...
    • 9.6
      • ...
    • ・・・(書くのが追いつかない・・・)

PostgreSQL 11 解体新書

15:25 - 16:05 (曽根さん) [^1]

  • (4000円くらいの話をタダで聞ける)
  • 目玉の新機能
    • パーティションの強化
      • 10で入って、11で圧倒的強化
      • 3種類
        • レンジ
          • 1月,2月,3月などの範囲で分ける
        • リスト
          • 東京,大阪,名古屋のような
        • ハッシュ
          • 指定したKey(int)÷テーブルの余りで分散する
      • 性能強化
        • その1
        • その2
        • その3
    • パラレルクエリの強化
      • 11で追加された対象
        • Parallel Hash Join (9.6からより強化)
        • CREATE TABLE AS SELECT
          • データ移行で移すときに役立つ
        • CREATE MATERIALIZED VIEW
        • UNION ALL によるAPPEND
        • SELECT INTO
        • CREATE INDEX
      • 多くの読み込みは並列化できる
        • 書き込みはまだ未対応
      • 基本的にはVer.upするだけで速くなる
    • SQLの拡張
      • INDEX ONLY SCAN の強化
      • INCLUDE句の追加
        • INDEXに参照用の列を指定
      • Window関数の強化
        • EXCLUDE句
    • 嬉しいユースケース
      • パーティション同士の結合
      • スキャンが多い
      • ・・・
      • ALTERの際にDEFAULT NULLではないカラムの追加が高速に!
    • PostgreSQL 11 の罠
      • ・・・
      • JIT compile はまず導入されただけ
      • ストアドプロシージャに過度の期待をしない
      • 非互換の変更
      • RDSなどDBaaSに来るにはまだ時間がかかる
  • その他の新機能
    • JITコンパイルの導入
    • ストアドプロシージャの導入
      • ストアドファンクション(戻り値必須)はあった
      • テストデータ作るときに便利
    • レプリケーションの強化

皆さんのクソクエリ体験談

16:40 - 17:20 (カピバラおじさん さん?)

  • フレームワークのメンテナンスご苦労話

    • CodeIgniter
      • (date - 2 week) <= time を実現するときの苦労
        • トリガーを駆使した
      • MySQL は式インデックスがない
    • O/Rマッパーをどうやってチューニング?
      • 使わない
      • View を駆使
  • 10000カラムのテーブル

    • 最大 1600 カラムでは?
  • Memo

    • オンラインDDL
      • Aurola
        • 投げられる
      • MySQL 5.7
        • 投げられない
    • 「抽選で1名」をどう実装?
    • ElasticSerach は手繰れるけどBigQueryは手繰れない
    • RDBに苦手なことはRDBにさせない

アンカンファレンスから聞こえてきたのをメモなど

その他

  • WiFi は用意していく必要があるようだ
    • 今回自分は持参したが、問い合わせTweetしていた人がいた
    • 登壇者はケーブルも!
  • 実はちょっとした話題を Twitter でふっかけてみた https://twitter.com/sogaoh/status/1091601465313918976 20190202_myQuestion.png (47.4 kB)

    • これをきっかけに、 @soudai1025 さんがたまたま隣だったので少し話ができた。
      • RDBMSは、予測ができない。AIでも入れていかないと・・・と、文字通り壮大なことを。
    • 初めまして、だった
    • スケール大きいな、と思った

Note

[^1] : Twitter で教えてもらったのですが、PostgreSQL Conference Japan 2018 (2018-11-22) での資料のようだったので挿入しました