🗒️

24/07/22 ~ 24/07/28 Weekly Report

2024/07/29に公開

はじめに

この一週間に学んだ内容や私生活について、備忘録として残していこうと思います。

Input

Books

1. データエンジニアリングの基礎

4章 データエンジニアリングライフサイクルにおけるテクノロジの選択

テクノロジ選択の重要な要素
  • チームの規模と能力: チームの規模やスキルレベルによって、選択すべきテクノロジは異なります。[4.1] 小規模なチームであれば、シンプルで扱いやすい技術が適している一方、大規模なチームであれば、より複雑な技術にも対応できる体制が必要です。
  • 市場投入までのスピード: 迅速な開発が求められる場合は、クラウドベースのマネージドサービスの活用が有効です。[4.2]
  • 相互運用性: 異なるシステム間でのデータ連携をスムーズに行うためには、標準フォーマットやオープンAPIを採用することが重要です。[4.3]
  • コスト最適化とビジネス価値: 高価な技術が常に最適であるとは限りません。費用対効果を考慮し、ビジネス価値を最大化する技術を選択する必要があります。[4.4]
  • 現在と未来: 現在のニーズに最適な技術を選択する一方で、将来の変化にも柔軟に対応できる計画を立てることが重要です。 [4.5] 特定の技術に固執しすぎず、将来的な移行も視野に入れておくべきです。
設置場所の選択
  • オンプレミス: 従来型の設置方法で、自社でハードウェアやソフトウェアを所有・管理します。既存のシステムや運用体制によっては、オンプレミス環境の方が適している場合があります。
  • クラウド: AWS、Azure、GCPなどのクラウドサービスを利用する設置方法です。柔軟なスケーラビリティ、従量課金によるコスト削減、運用負荷の軽減などのメリットがあります。
  • ハイブリッドクラウド: オンプレミス環境とクラウド環境を組み合わせた設置方法です。既存システムとの連携が必要な場合などに有効ですが、運用が複雑になる可能性もあります。
  • マルチクラウド: 複数のクラウドサービスを併用する設置方法です。特定のクラウドサービスへの依存度を軽減できますが、管理が複雑になる可能性もあります。
構築 vs. 購入
  • オープンソースソフトウェア: コスト面で有利な場合が多いが、運用・保守の負担が大きくなる可能性があります。
  • プロプライエタリ製品: ベンダーのサポートを受けられるが、コストが高額になる場合や、ベンダーロックインのリスクがあります。
モノリス vs. モジュール
  • モノリス: 一つの巨大なシステムとして構築する方法です。理解や管理は容易だが、システム全体に影響が及ぶ変更や障害が発生するリスクがあります。
  • モジュール: システムを複数の独立したモジュールに分割して構築する方法です。変更や障害の影響を局所化できるが、システム全体が複雑になる可能性があります。
サーバレス vs. サーバ
  • サーバレス: サーバ管理が不要なアーキテクチャです。 運用負荷の軽減、自動スケーリングなどのメリットがあります。
  • コンテナ: アプリケーションの実行環境をパッケージ化したものです。環境依存の問題を回避し、可搬性を高めることができます。
その他の考慮事項
  • 最適化、性能、ベンチマーク: 性能は重要な要素ですが、過度な最適化は避けるべきです。 現実的なユースケースに基づいた評価が重要です。
  • DataOps、データ管理: 効率的かつ信頼性の高いデータエンジニアリングを実現するために、DataOpsやデータ管理の原則を取り入れることが重要です。

5章 ソースシステムにおけるデータ生成

データソースの種類と特徴
  • アナログデータ: 音声、手書き文字、楽器演奏など、現実世界で生成されるデータ。 デジタル形式に変換して利用されます。
  • デジタルデータ: コンピュータシステムによって直接生成されるデータ。 ECサイトの取引データ、IoTデバイスのセンサーデータなどがあります。
主要なソースシステムの種類と概念
  • ファイルと非構造化データ: データレイクでよく見られるデータ形式。 センサーデータ、ログファイル、画像データなど、さまざまな形式があります。
  • API: アプリケーションが外部システムとやり取りするためのインターフェース。 Web APIからJSONやXML形式でデータを取得することが多いです。
  • アプリケーションデータベース(OLTPシステム): トランザクション処理に最適化されたデータベース。 オンライン取引や在庫管理などで利用されます。 RDBMSはこのカテゴリに該当します。
  • OLAPシステム: 分析処理に最適化されたデータベース。 データウェアハウスやデータマートなどがあります。
  • 変更データキャプチャ(CDC): データベースの変更をリアルタイムに取得する技術。 データベースの更新をイベントストリームとして取得できます。
  • ログ: アプリケーションやシステムのイベントを記録したデータ。 エラーログ、アクセスログなど、さまざまな種類のログがあります。
  • メッセージとストリーム: イベント駆動アーキテクチャで利用されるデータ形式。 メッセージキューやストリーミングプラットフォームを通じて、非同期的にデータを送受信します。 メッセージは個別のデータ単位、ストリームは連続的なデータ列として扱われます。
ソースシステムの実践的な詳細
  • データベース: データベースは、リレーショナルデータベース(RDBMS)、ドキュメントストア、ワイドカラムデータベース、グラフデータベースなど、さまざまな種類があります。 データエンジニアは、各データベースの特性を理解し、適切な方法でデータを取得する必要があります。
    • RDBMS: ACID特性に準拠し、正規化されたスキーマを持つデータベース。 トランザクション処理に適していますが、データ分析には不向きな場合があります。
    • ドキュメントストア: JSONのようなドキュメント形式でデータを格納するデータベース。 スキーマが柔軟で、開発が容易ですが、複雑なクエリには不向きな場合があります。
    • ワイドカラムデータベース: 大量のデータを高速に処理することに特化したデータベース。 センサーデータやログデータの保存に適していますが、複雑なクエリには不向きな場合があります。
    • グラフデータベース: ノードとエッジの関係でデータを表現するデータベース。 ソーシャルネットワーク分析やレコメンデーションシステムなどで利用されます。
  • API: APIを利用する場合、APIクライアントライブラリ、データコネクタプラットフォーム、データ共有などの技術を活用することで、データ取得のプロセスを簡素化できます。
  • メッセージキューとイベントストリーミングパイプライン: メッセージキューは、アプリケーション間で非同期にメッセージを送受信するための仕組みです。 イベントストリーミングパイプラインは、大量のイベントデータをリアルタイムに処理するための仕組みです。 データエンジニアは、これらの仕組みを利用することで、イベントデータの取り込みを効率化できます。
ソースシステムにおけるデータエンジニアリングの考慮事項
  • 一緒に仕事をする人: データエンジニアは、ソースシステムの開発・運用チームと緊密に連携する必要があります。 コミュニケーションと協力体制を構築することで、データ品質の向上や問題発生時の迅速な対応が可能になります。
  • 底流: セキュリティ、データ管理、DataOps、データアーキテクチャ、オーケストレーション、ソフトウェアエンジニアリングといった、データエンジニアリングの基盤となる要素は、ソースシステムの段階でも重要となります。

2. ウェブ最適化ではじめる機械学習

3章 組合せのあるテスト:要素に分解して考える

ウェブサイトは写真、テキスト、ボタンなど複数の要素の組合せで構成されているため、A/Bテストでは複数の要素を同時に変更したデザイン案を評価したい場合があります。3章では、複数の要素の組合せからなるウェブサイトのA/Bテストについて解説されています。

ポイント

  • 要素の組合せを考慮した統計モデルを構築することで、少ないサンプル数でも、それぞれの要素が及ぼす効果(主効果)と要素の組合せによって生まれる効果(交互作用)を評価できます。
  • 単純に要素の効果を足し合わせるだけでは、要素間の相互作用を見落としてしまう可能性があります。
  • 交互作用を考慮することで、より正確な結果が得られ、ウェブサイトのデザインにおける要素間の関係性を深く理解することができます。
  • 複数の統計モデルから最適なものを選ぶことをモデル選択と呼びます。
  • モデル選択においては、データへの当てはまりの良さだけでなく、解釈のしやすさも考慮する必要があります。
  • 直交計画を用いることで、テストに必要な組合せの数を減らすことができます。ただし、ウェブ最適化では、すべての組合せをテストするコストが低いため、直交計画のメリットは薄い可能性があります。

例:株式会社XのカメラLPにおけるA/Bテスト

  • 最初の分析では、ヒーロー画像とボタンの文言の主効果のみに着目した統計モデルを採用していた。
  • その後、データの分析を進めていくと、要素間の交互作用が無視できない大きさであることが分かりました。具体的には、「詳しく見る」ボタンは、サンプル写真と組み合わせるとクリック率が低下する傾向が見られた。
  • これは、「詳しく見る」ボタンとサンプル写真の組み合わせが、ユーザーに商品を分かりにくくさせているためと考えられる。

Blogs

Media

Life

  • 新たに書籍を購入した
  • 今週は書籍をすすめることがメインになってしまい、全然kaggleに着手することができなかった。少なくとも平日1時間はkaggleコンペに着手することを心がけよう。
  • 飲み会や個人的な予定があり筋トレや時学習の時間をしっかりとることができなかった。予定があることは仕方ないので、習慣は崩さないことを意識する。
  • 転職活動によるストレスを感じることがある。瞑想や筋トレを継続し、健康的な精神状態を保とう。早く転職活動を終わらせないと日常生活に多少の支障をきたしそうだ。

Discussion