Bigquery 性能検証

Index##概要##環境&手順テストデータ性能確認手順##Bigqueryの性能検証 Bacic目的検証結果考察##Bigqueryの性能検証 Advanced目的検証結果1.パーティションキー&クラスターキー […]

continue

掲示板WEBサイトの投稿分析機能

Index##機能概要##最終アウトプットのサンプルイメージ##システム構成##前提基本技術の説明についてWEBからのデータ抽出について##処理プロセス処理コード全体(bashのスクリプト)環境変数の設定事前のワークファ […]

continue

Bigqueryテストデータ生成 – 1億件を10秒で! –

Index##機能概要##以降で説明するコードの全体像##データ生成手順テーブル作成データ生成##データ生成結果##おまけテーブル作成データ生成##データ生成結果 ※ 下記のgithubでも同様の内容を公開しています。g […]

continue

データアクセスパスのパターン化

デザインパターンというものがある。classをデザインするときのパターンを汎化してまとめたものである。多くのデザインがこのパターンのどれかに近いもので実現できる。 データアクセスパスも同じようにパターンを型として理解して […]

continue

※作成中※ ETLの並列処理(概要)

ETLは並列化することで高速化できる。しかし、並列化には多くのパターンがあり適切に選択しなれば効果が得られない。並列化のパターンとそのメリット、デメリットを記載する。

continue

ETLのウィークポイント(システム移行)

Indexシステム移行方式のパターンETLに適したシステム移行方式ETLのシステム移行のリスク対策ETLはソフトウェアのバージョンアップ、ハードウェアのリソース不足、老朽化等でシステム移行が必要となる。ETLは非常に多く […]

continue

ETLのウィークポイント(修正とテスト)

Indexスクラッチ開発の場合の修正とテストETLの場合の修正とテストETLのウィークポイントとどう付き合うか?ETLは生産性が高いと言われるが必ずしもそうではない。スクラッチ開発よりも弱い部分がある。率直に言うと、ET […]

continue

ETLのサイジング:ストレージ

ETLサーバーの内部ストレージは以下のような用途で使われる。 多くの場合はシーケンシャルIOであるが、上記2はランダムIOである。下記にシーケンシャルIO、ランダムIO、それぞれのサイジングの考え方を記載しているので参照 […]

continue

ETLのサイジング:メモリ

ETLのメモリはDBのように、アクセス頻度の高いデータをメモリに載せてディスクアクセスの頻度を削減するような使い方はしない。 ソート、ソートJOIN、Group by、ランキング処理等のレコード間の関連を見なければならな […]

continue

ETLのサイジング:CPU

ETLのCPUをサイジングするときの基本的な考え方を記載する。いろいろなサイジング方法があるが私が使っているものである。常に実測してみて見積るのでは作業コストが膨らんでしまう。また、実測はテストデータの特性やキャッシュの […]

continue

サイジング:HDD vs SSD

IndexHDDSSDシーケンシャルIOがランダムIOと比較して高速となる原理最近はほとんどのケースでSSDでストレージを構成する。HDDとSSDではシーケンシャルIOの特性に違いがあり、SSDをHDDの場合と同じように […]

continue

サイジング:ストレージ

IndexランダムIO シーケンシャルIOIO回数と処理時間クラウドでサーバーのディスクストレージを選択する時、どのように選択するべきか基準がわからない人が多いのではないだろうか。データ基盤のボトルネックの多くはストレー […]

continue

データストア(データベース)の選び方

時代の流れとともにニーズが変化しデータソースの機能も進化してきた。しかし、いろいろなタイプのデータベースが存在するのはなぜだろうか。理由はデータの整合性、同時書き込み、大量データの処理、大量のトランザクションのどれかを強 […]

continue

Tech Blogのコンセプト

Tech Blogでは中級者以上の技術者向けにデータエンジニアの領域についての情報を提供する。25年以上、SIerの技術者として現場で手を動かしてきた(About参照)。そのアドバンテージを活かし、付加価値の高いコンテン […]

continue

データ連携基盤のサイジングの考え方

Index超概要概要詳細データ連携基盤をサイジングするときのポイントをまとめる。 超概要 1.目標設定最も重たいかつ重要な処理について目標の処理時間を設定する。 2.ボトルネックの特定 重要な処理がIOボトルネックかCP […]

continue

DB実行計画の”コスト”の考え方を理解する

Indexコストの目的コストの使い方(概要)コストの使い方(詳細)実際のデータベースでのコストの例参考(Postgresqlのマニュアルから抜粋)データベースの実行計画のマニュアルや解説で下記の図のようなコストという概念 […]

continue

CPU、ストレージ、NWの処理時間を”体系的”に理解する

システムの処理時間はCPU、ストレージ、ネットワークの処理時間の合計である。それぞれの処理時間の規模感が理解できるとパフォーマンスチューニングでどこがボトルネックか判断できるようになる。 例えば、DBからのレスポンスタイ […]

continue

データ基盤の構成要素

データ基盤を構成する要素を記載する。他のサイトにも存在する情報ではあるがデータ仮想化も含めたフルセットがシンプルに整理されたものが見つからなかったので簡単に記載しておくことにした。 データ加工機能 データ保管機能 集計/ […]

continue

DBの実行計画とは

Index実行計画の目的実行計画とはどのように作成されるか?データベースの実行計画がどのようなもので、どのように利用されるか記載する。本質の理解を目的としているため特定のシンプルな構成を例に説明する。 実行計画の目的 実 […]

continue

システム設計で待ち行列理論を活用する

Index概要待ち行列理論の活用方法参考)待ち行列理論システム設計での待ち行列の本質待ち行列という理論があり、IPAの情報処理試験にも登場する。実務での活用が難しい理論だと思う。本質を理解して活用できるように体系化する。 […]

continue

データ基盤(連携基盤+分析基盤)の進化

Indexデータウェアハウスデータハブビックデータ基盤ストリーム処理データ仮想化データメッシュデータ基盤にはいろいろな種類がある。その結果、データ基盤のイメージは人によって様々である。時代の流れとともにデータ量が増え、ニ […]

continue