タグ

datalakeとrdbに関するsh19910711のブックマーク (5)

  • pg2arrowを並列化する - KaiGaiの俺メモ

    今回は皆さんが大好きな便利ツール「pg2arrow」のお話です。 PostgreSQLでポータブルな列指向データ形式 Apache Arrow を読み出すには、Arrow_Fdwを利用する事ができます。 PG-StromではGPU-Direct SQLにも対応していますし、列指向データという事もあって、被参照列しかI/Oが発生しない、同じ列のデータが近傍に固まっているという大量データ処理に適した特性を持ってもいます。 また、Apache Arrow形式のファイルを作成するにはPyArrowやPandasなど様々なツールがありますが、我々DB屋としてはPostgreSQLに格納されたトランザクショナルなデータを、分析用にApache Arrow形式として吐き出せるととても嬉しい。そんな時に使えるツールがpg2arrowなのです。 pg2arrowは、PostgreSQLにクエリを投げ、その問

    pg2arrowを並列化する - KaiGaiの俺メモ
    sh19910711
    sh19910711 2024/04/08
    "PostgreSQLに格納されたトランザクショナルなデータを、分析用にApache Arrow形式として吐き出せるととても嬉しい / pg2arrow: PostgreSQLにクエリを投げ、その問合せ結果をApache Arrow形式のファイルとして保存"
  • データウェアハウスの設計原理 - 極北データモデリング

    非正規形のデータ構造では更新時異状が発生する。更新時異状があると実装できない機能が(ふつうは)出てくるので、OLTPシステムでは正規化が必要になる。 一方データウェアハウスには日中のデータ更新がないので、OLTPの設計原理に従う必要がない。では何を指針として設計すればよいか。 古典的なデータウェアハウスの設計原理にディメンジョナル・モデルがある。 ディメンジョナル・モデルに従ったDBは、いわゆるスタースキーマ 多数の外部キーと小数の数値データからなるファクトテーブルと それを取り巻く次元テーブル この2段でおしまい、という形になる。 このモデルでは、リレーションシップは全てファクトと次元の間に張るのであって、 売上ファクト = { 年月日, 事業部コード(FK), ブランドコード(FK), 製品コード(FK), 数量 } 事業部次元 = { 事業部コード, 事業部名 } ブランド次元 =

    データウェアハウスの設計原理 - 極北データモデリング
    sh19910711
    sh19910711 2023/07/21
    "ラルフ・キンボールの古典によれば、後者の「スノーフレーク・スキーマ」は、ユーザからのクエリに対する応答速度が低下する / ところが、この話があてはまるのは古典的な構成のデータウェアハウスシステム" / 2008
  • Fluentd向けApache Arrowプラグインについて - KaiGaiの俺メモ

    構想は半年ほど前?ここ一ヶ月ほど集中して開発に取り組んでいた、Fluentd向けApache Arrowプラグインがようやく動くようになったので、今回はこちらのモジュールについてご紹介します。 そもそもPG-Stromは、IoT/M2M領域で大量に発生するデータを高速に処理できますというのがセールスポイントで、GPU-Direct SQLはじめ、各種の機能によってそれを実現しているワケですが、実際に運用する際には、発生したデータを『どうやってSQLで処理できるようDBにインポートするか?』という問題があります。 例えば、PostgreSQLに一行ずつINSERTするというのも一つの解です。ただし、単純なI/Oに比べると、DBへの書き込みはどうしても処理ボトルネックになりがちです。 そこで、大量に収集するログデータを、少ない時間ロスで(つまり一時ファイルに保存したデータを再度DBにインポート

    Fluentd向けApache Arrowプラグインについて - KaiGaiの俺メモ
    sh19910711
    sh19910711 2022/09/10
    fluent-plugin-arrow-file / "発生したデータを『どうやってSQLで処理できるようDBにインポートするか?』 / Fluentd から Apache Arrow 形式ファイルを出力 + 直接 PG-Strom から読み出す / データをインポートする事なく PostgreSQL から参照"
  • Apache Arrowの統計情報を使ったログ検索の爆速化 - KaiGaiの俺メモ

    PostgreSQLにはBRINインデックス(Block Range Index)という機能があり、ログデータに付属するタイムスタンプ値など、近しい値を持ったデータが物理的に近接するという特徴を持っているとき、検索範囲を効率的に絞り込むために使用する事ができる。 この機能はPG-Stromでも対応しており、その詳細は以前のエントリでも解説している。 kaigai.hatenablog.com かいつまんで説明すると、時系列のログデータのように大半が追記(Insert-Only)であり、かつタイムスタンプ値のように近しい値同士が近接している場合、1MBのブロック((pages_per_rangeがデフォルトの128の場合、8kB * 128 = 1MB))ごとにその最小値/最大値を記録しておくことで『明らかに検索条件にマッチしない範囲』を読み飛ばす事ができる。 例えば以下の例であれば、WHE

    Apache Arrowの統計情報を使ったログ検索の爆速化 - KaiGaiの俺メモ
    sh19910711
    sh19910711 2021/07/20
    "内部的にはRecord-Batchと呼ばれるブロックが複数並んだ構造 / ファイルの末尾にはフッタ(Footer)があり、ここを読めば、ファイルのどこにRecord-Batchが配置されているかが分かる"
  • MySQLによるデータウェアハウス構築

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、オークション事業部のWangです。 データウェアハウス(以下DWH)という言葉になじみのない方は検索していただいたほうがよいかもしれません。 検索するのがめんどい、という方は、かみ砕いた表現ができなくて恐縮ですが、 基幹系システムから抽出したデータを目的をもって再構成し、 使用可能な状態に保管されたデータの集合体、とお考えください。 オークションでは、具体的には出品、入札、落札などのトランザクションデータや、 それをいろいろな単位で集計したデータなどが該当します。 ここでいう単位というのはたとえば、日ごと、週ごと、月ごとや、以前の記事でも紹介されている カテゴリといったものになります。 こういったデータは、運用、運営、

    MySQLによるデータウェアハウス構築
  • 1