zono

データエンジニア。ビッグデータ基盤の開発やデータマネジメントを担当。 データエンジニア…

zono

データエンジニア。ビッグデータ基盤の開発やデータマネジメントを担当。 データエンジニアリング本を読むのが趣味。

マガジン

  • データ志向アプリケーションデザインを活かすために

    データ処理システムの設計に携わるエンジニアや、データ処理システムに関する知識を深めたい人にとって必読の書籍です。

  • 実践的データ基盤への処方箋を現場で活かすために

    「実践的データ基盤への処方箋」というデータ基盤に関わる人必読の本を紹介します。データエンジニア、データサイエンティスト、データアナリストにオススメの内容になっています。

  • DMBOKを現場で活かすために

    「DMBOK」というデータマネジメントのバイブル(体系本)を紹介します。データエンジニアやPMの方にオススメの内容になっています。企業のデータを管理するためのノウハウが詰め込まれています。

記事一覧

固定された記事

2024年版:データエンジニア向け推薦本リスト

世間ではデータエンジニアリングが流行しており、エンジニアからは人気が出て、企業からはその能力が求められています。 データエンジニアは、データの収集、蓄積、分析、…

zono
4か月前
273

分析基盤の誤ったデータの対処法

誤ったデータが混入する主な原因データ入力プロセスで発生する問題 皆さんもご存知の通り、入力時点で誤ったデータが混入することは多々あります。リストエントリーやフィ…

zono
3日前
5

分析基盤のテーブルと連携方式

分析基盤においては様々な連携手法があります。 これは、データ量が多いか少ないか、データソースが最新か履歴か、によって変わってきます。 今回は、連携手法を紹介しなが…

zono
1か月前
14

分析基盤のためのテーブルとカラム

データ分析基盤を構築する上で、テーブルとカラムの設計は非常に重要です。分析に必要なデータを効率的に取得・加工するために、適切なテーブル構成とカラム設計を行う必要…

zono
1か月前
18

データマートのモデリングとパフォーマンスチューニング

はじめにデータエンジニアリングが興隆してから数年が経ち、各企業がデータ基盤に注力し始めたり、知見が溜まり始めています。 そんな流れがある中、データマートの乱立や…

zono
2か月前
8

第12章 データシステムの将来

前の章 前の章である第11章 ストリーム処理はこちらです。 データインテグレーションこの本の目標は、信頼性、拡張性、保守性の高いアプリケーションとシステムを作成す…

zono
2か月前
3

第11章 ストリーム処理

前の章 前の章である第10章 バッチ処理はこちらです。 ストリームとはストリームとは、時間の経過とともに段階的に利用可能になるデータを指します。したがって、データ…

zono
2か月前
2

第10章 バッチ処理

前の章 前の章である第9章 一貫性と合意の問題はこちらです。 3 つの異なるシステム結果整合性は、複数のノード間でデータをレプリケートする際に遅延が発生する可能性が…

zono
2か月前
4

第9章 一貫性と合意

前の章 前の章である第8章 分散システムの問題はこちらです。 一貫性の保証結果整合性は、複数のノード間でデータをレプリケートする際に遅延が発生する可能性があっても…

zono
3か月前
3

第8章 分散システムの問題

前の章 前の章である第7章 トランザクションはこちらです。 フォールトと部分障害分散システムは、システムが完全に動作しているか完全に壊れている単一ノード コンピュ…

zono
3か月前

第7章 トランザクション

要約 ACIDは、トランザクションの安全性を確保するための原則を指す頭字語で、原子性、一貫性、分離性、耐久性から構成されます。 原子性は、障害時にトランザクションを…

zono
3か月前
2

第6章 パーティショニング

要約 この章では、大きなデータセットをより小さなサブセットに分割するパーティショニングを扱います。データが大量にあり、それを1台のマシンに保存して処理することが…

zono
4か月前
2

第5章 レプリケーション

要約 レプリケーションは、ネットワークで接続された複数のマシンに同じデータを保持する方法で、障害への耐性や処理能力向上に活用されます。 シングルリーダー、マルチ…

zono
4か月前
2

第4章 エンコーディングと進化

要約 大規模システムのデプロイにおいて進化性を高める手法として、スムーズな動作を確認しながら全体をアップグレードするローリングアップグレードが挙げられます。ダウ…

zono
4か月前
4

第3章 ストレージと抽出

要約 OLTPはトランザクション処理に、OLAPは分析処理に特化しています。 インデックスにはハッシュ、SSTable・LSMツリー、Bツリーなどがあり、読み取り速度と書き込み速度…

zono
4か月前
7

第2章 データモデルとクエリ言語

要約 データモデルには様々な種類があり、それぞれが異なる利用方法を提供します。 リレーショナルモデルはSQLデータモデルで知られ、30年以上の歴史があります。ドキュメ…

zono
4か月前
3
2024年版:データエンジニア向け推薦本リスト

2024年版:データエンジニア向け推薦本リスト

世間ではデータエンジニアリングが流行しており、エンジニアからは人気が出て、企業からはその能力が求められています。
データエンジニアは、データの収集、蓄積、分析、活用に必要なデータ基盤を構築・運用する職種です。データエンジニアとして活躍するためには、非常に幅広い知識と能力が求められます。

データベース

プログラミング

システム開発

クラウドサービス

データ分析

etc…….

私は多少デ

もっとみる
分析基盤の誤ったデータの対処法

分析基盤の誤ったデータの対処法

誤ったデータが混入する主な原因データ入力プロセスで発生する問題

皆さんもご存知の通り、入力時点で誤ったデータが混入することは多々あります。リストエントリーやフィールドの影響や業務プロセスの変更、一貫していない業務プロセス等があります。

データ処理機能の稼働中に発生する問題

入力以外にもデータソースの仕様の誤認識だったり、送られてくるデータ構造の変更等もよくあるケースになります。ベンダーツール

もっとみる
分析基盤のテーブルと連携方式

分析基盤のテーブルと連携方式

分析基盤においては様々な連携手法があります。
これは、データ量が多いか少ないか、データソースが最新か履歴か、によって変わってきます。
今回は、連携手法を紹介しながら、その連携に必要なテーブルの特徴について話したいと思います。

連携元と連携先のテーブル連携元のテーブルは、最新テーブルになっている場合も履歴テーブル(インサートオンリー)の場合もあります。これはアプリ側の仕様によって異なります。多くの

もっとみる
分析基盤のためのテーブルとカラム

分析基盤のためのテーブルとカラム

データ分析基盤を構築する上で、テーブルとカラムの設計は非常に重要です。分析に必要なデータを効率的に取得・加工するために、適切なテーブル構成とカラム設計を行う必要があります。

マスタとトランザクションマスタテーブルとトランザクションテーブルは、データベース設計で重要かつ基本的な構成です。
下記で紹介するテーブルは全て履歴テーブルです。

マスタテーブル

基本的に静的なマスターデータを格納するテー

もっとみる
データマートのモデリングとパフォーマンスチューニング

データマートのモデリングとパフォーマンスチューニング

はじめにデータエンジニアリングが興隆してから数年が経ち、各企業がデータ基盤に注力し始めたり、知見が溜まり始めています。
そんな流れがある中、データマートの乱立やパフォーマンスで悩んでいる方が多いのではないでしょうか?

そこで、本記事では重要な分析基盤の1つであるデータマートに焦点を当てつつ、データ基盤のデータモデリングから構築、運用に至るまでの手法と考え方を解説していきます。

データマートの目

もっとみる
第12章 データシステムの将来

第12章 データシステムの将来

前の章

前の章である第11章 ストリーム処理はこちらです。

データインテグレーションこの本の目標は、信頼性、拡張性、保守性の高いアプリケーションとシステムを作成することでした。(1章からのテーマ)

唯一の正しい解決策はありませんが、状況に応じて適切なさまざまなアプローチが存在します。ソフトウェア実装では通常、特定のアプローチを 1 つ選択する必要があります。

したがって、最適なソフトウェア

もっとみる
第11章 ストリーム処理

第11章 ストリーム処理

前の章

前の章である第10章 バッチ処理はこちらです。

ストリームとはストリームとは、時間の経過とともに段階的に利用可能になるデータを指します。したがって、データセットは決して終わることがなく、これまでに受信したデータを処理する必要があります。一方、バッチ処理では、データベースがいつ終了するかがわかり、その後に計算を開始できます。

ストリーミングでは、入力は、ある時点で起こった何かの詳細を含

もっとみる
第10章 バッチ処理

第10章 バッチ処理

前の章

前の章である第9章 一貫性と合意の問題はこちらです。

3 つの異なるシステム結果整合性は、複数のノード間でデータをレプリケートする際に遅延が発生する可能性があっても、データは最終的にはすべてのノードに到達します。

ただし、これは弱い保証になります。レプリカがいつ収束されるかについては言及されておらず、単に収束します。

オンラインシステム

サービスは、クライアントからのリクエストま

もっとみる
第9章 一貫性と合意

第9章 一貫性と合意

前の章

前の章である第8章 分散システムの問題はこちらです。

一貫性の保証結果整合性は、複数のノード間でデータをレプリケートする際に遅延が発生する可能性があっても、データは最終的にはすべてのノードに到達します。

ただし、これは弱い保証になります。レプリカがいつ収束されるかについては言及されておらず、単に収束します。

線形化可能性

線形化可能性とは Register (key/行) の読み

もっとみる
第8章 分散システムの問題

第8章 分散システムの問題

前の章

前の章である第7章 トランザクションはこちらです。

フォールトと部分障害分散システムは、システムが完全に動作しているか完全に壊れている単一ノード コンピューターとは異なり、分散システムでは部分的な障害が発生する可能性があるという点で単一ノード コンピューターとは異なります。

ハードウェアが正しく動作していれば、同じ処理は常に同じ結果をもたらします。これを決定的と呼びます。

部分的な

もっとみる
第7章 トランザクション

第7章 トランザクション

要約

ACIDは、トランザクションの安全性を確保するための原則を指す頭字語で、原子性、一貫性、分離性、耐久性から構成されます。
原子性は、障害時にトランザクションを中止し、一貫性はデータベースが「良好な状態」を維持することを指します。分離性は、トランザクションの相互干渉を防ぎ、耐久性はデータの不滅性を保障します。
BASEはACIDを満たさないシステムを指し、基本的に利用可能、厳密ではない状態遷

もっとみる
第6章 パーティショニング

第6章 パーティショニング

要約

この章では、大きなデータセットをより小さなサブセットに分割するパーティショニングを扱います。データが大量にあり、それを1台のマシンに保存して処理することがもはや不可能な場合に必要です。

パーティショニングの目的は、データとクエリの負荷を複数のマシンに均等に分散し、ホットスポット(負荷が不均衡に高いノード)を避けることです。そのためには、データに適したパーティショニング・スキームを選択し、

もっとみる
第5章 レプリケーション

第5章 レプリケーション

要約

レプリケーションは、ネットワークで接続された複数のマシンに同じデータを保持する方法で、障害への耐性や処理能力向上に活用されます。
シングルリーダー、マルチリーダー、リーダーレスの3つのアプローチがあります。
また、同期と非同期のレプリケーションも存在し、同期は一貫性を保障しますが、非同期は処理速度向上をもたらします。問題としては、レプリケーションラグや書き込みの衝突が挙げられ、ケースバイケ

もっとみる
第4章 エンコーディングと進化

第4章 エンコーディングと進化

要約

大規模システムのデプロイにおいて進化性を高める手法として、スムーズな動作を確認しながら全体をアップグレードするローリングアップグレードが挙げられます。ダウンタイムがなく、リリースが容易になり進化性が向上します。
データ変更に伴う互換性管理には前方互換性と後方互換性が存在し、Apache Thrift、Protocol Buffers、Apache Avroなどもあり、それぞれフィールドのタ

もっとみる
第3章 ストレージと抽出

第3章 ストレージと抽出

要約

OLTPはトランザクション処理に、OLAPは分析処理に特化しています。
インデックスにはハッシュ、SSTable・LSMツリー、Bツリーなどがあり、読み取り速度と書き込み速度のトレードオフがあります。
データウェアハウスではインデックスはあまり機能しません。ストレージでは行ではなく、列指向が使われており効率化を図っています。

前の章

前の章である第2章 データモデルとクエリ言語はこちら

もっとみる
第2章 データモデルとクエリ言語

第2章 データモデルとクエリ言語

要約

データモデルには様々な種類があり、それぞれが異なる利用方法を提供します。
リレーショナルモデルはSQLデータモデルで知られ、30年以上の歴史があります。ドキュメントモデルはJSON形式で階層構造を持ち、人間には理解しやすいが多対多の関係表現が難しいとされます。グラフモデルは多対多の関係が複雑な場合に有効で、ソーシャルネットワークや不正検出などに利用されます。NoSQLはリレーショナルデータ

もっとみる