タグ

2022年7月2日のブックマーク (2件)

  • BigQuery で ROW_NUMBER(), RANK() を使うな!

    どういうことか たとえば created_at が最も新しいレコード 1 件だけ取ってきたいとか、成績のよいレコード上位 5 件を取ってきたいといったとき、よくある方法として RANK() や ROW_NUMBER() のような番号付け関数を使う方法が思い浮かぶと思いますが、BigQuery ではこれらの関数ではなく ARRAY_AGG() 集計分析関数を使うことが推奨されています。 先に結論を ARRAY_AGG() を使うことでクエリの計算を最適化でき、スロット使用量(計算量)が少なく済みます。スロット使用量の上限を定めている場合、非効率なクエリがいくつも実行されるとキューイングされる可能性があるため理由がなければ ARRAY_AGG() を使いましょう。 ドキュメントによれば ORDER BY 句が各 GROUP BY 句のトップレコードを除くすべてを捨てることができるため効率がいい

    BigQuery で ROW_NUMBER(), RANK() を使うな!
  • AlloyDB for PostgreSQL の仕組み: カラム型エンジン | Google Cloud 公式ブログ

    ※この投稿は米国時間 2022 年 5 月 27 日に、Google Cloud blog に投稿されたものの抄訳です。 Google は最近、Google I/O にて AlloyDB for PostgreSQL を発表いたしました。これは、要求が厳しいエンタープライズ クラスのトランザクション / 分析ワークロードに使用できる、PostgreSQL 対応のフルマネージド データベースです。弾力性のあるストレージとコンピューティング、インテリジェントなキャッシュ、AI / ML による管理といったクラウドの優れた特徴を、PostgreSQL に統合できるようになります。さらに、AlloyDB は圧倒的なコスト パフォーマンスを実現します。パフォーマンス テストでは、標準の PostgreSQL と比較してトランザクション ワークロードで 4 倍以上、分析クエリで最大 100 倍も高速に

    AlloyDB for PostgreSQL の仕組み: カラム型エンジン | Google Cloud 公式ブログ