Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

Data Lake

データレイクは、あらゆる形式の生データを低コストのオブジェクトストレージに保存し、読み取り時にスキーマを適用します。データウェアハウスやレイクハウスとの違いを解説します。

データレイクは、データベースのエクスポートやJSONログから画像、動画、音声、文書まで、データを生のネイティブ形式のまま一元的に保存するリポジトリです。通常は低コストのクラウドオブジェクトストレージに保存し、データを読み取るときにのみ構造を適用します。当時Pentahoの最高技術責任者だったJames Dixonが、データマートを、精製して包装したボトル入りの水にたとえ、多くの利用者が自然な状態のまま利用できる大量のデータと対比するため、2010年にこの用語を作りました。事前にモデル化する必要がないため、データレイクには組織が収集したすべてのデータを保持でき、機械学習に適しています。明日のモデルのトレーニングデータは、保存時には用途が分からなかった生データであることがよくあります。

データレイクの仕組み#

データレイクではストレージとコンピューティングを分離します。ファイルはAmazon S3、Google Cloud Storage、Azure Data Lake Storageなどのオブジェクトストレージに置き、Spark、Trino、Pythonプロセスなどのエンジンが直接読み取るため、各チームはデータをコピーせずに独自のコンピューティングリソースを拡張できます。表形式データは通常、Apache Parquetなどのオープンな列指向形式で保存し、画像や動画は一般的なファイルとして保持します。多くの場合、メタデータやラベルを格納するJSONまたはParquetのマニフェストも併せて保存します。

ほとんどのデータレイクは、整備の度合いに応じたゾーンに分けて構成されます。Databricksがメダリオンアーキテクチャと呼ぶ方式では、raw(ブロンズ)ゾーンに受け取ったままのデータを、cleaned(シルバー)ゾーンに検証・重複排除済みデータを、curated(ゴールド)ゾーンにレポートやトレーニングにすぐ使えるテーブルやデータセットを格納します。AWS Glue Data Catalog、Hive Metastore、Unity Catalogなどのメタデータカタログには、各データセットの内容、所有者、読み取り権限を記録します。カタログとデータクリーニングのないデータレイクは「データスワンプ」に陥り、見つけられず、信頼できず、安全に削除できないファイルがあふれます。

読み取り時スキーマ#

データレイクではデータの読み取り時にスキーマを適用し、これを読み取り時スキーマ(schema-on-read)と呼びます。2つのソースでフィールドが一致しない場合でも、データが存在すればすぐに書き込め、読み取り側は必要な列と型をそれぞれ選択できます。この例では、異なるフィールドを持つ2つの生のJSONファイルを書き込み、Polarsを使って同じスキーマで両方を読み込みます。

import json
from pathlib import Path

import polars as pl

# Rawゾーン: 2台のカメラがそれぞれ独自のフィールドを持つ検出イベントをJSON Lines形式で書き込みます
Path("lake/raw").mkdir(parents=True, exist_ok=True)
Path("lake/raw/dock-1.jsonl").write_text(json.dumps({"label": "forklift", "conf": 0.91}))
Path("lake/raw/dock-2.jsonl").write_text(json.dumps({"label": "person", "conf": 0.62, "lux": 120}))

# 読み取り時スキーマ: この読み取り側は、ファイルをクエリするときに列と型を選択します
schema = {"label": pl.String, "conf": pl.Float32, "lux": pl.Int32}
events = pl.scan_ndjson("lake/raw/*.jsonl", schema=schema, include_file_paths="source")
print(events.collect())

結果には、label、conf、lux、sourceの列を持つ2行が含まれます。最初のカメラはluxを記録していないため、その値はnullとして返され、sourceには各行の読み込み元となった生ファイルが記録されます。別のジョブで、ファイルを書き換えずに異なるスキーマを使って同じファイルを読み込むこともできます。

データレイク、データウェアハウス、レイクハウスの比較#

  • データウェアハウス: 固定スキーマに適合するよう、読み込み前(schema-on-write)にデータを整形します。通常は抽出、変換、ロード(ETL)の工程を経て、クリーンで構造化されたテーブルを保存します。Snowflake、BigQuery、Redshiftなどのデータウェアハウスは、SQLやビジネスインテリジェンスのクエリに高速で応答しますが、画像、テキスト、その他の非構造化データへの柔軟性は低くなります。
  • データレイク: あらゆる形式のデータを低コストで保存し、読み込み後にデータを変換(ELT)するため、探索、データマイニング、機械学習に適しています。通常のデータレイクファイルにはトランザクション機能がないため、同時書き込みによって読み取り側が未完成の結果を参照する可能性があります。
  • レイクハウス: Apache Iceberg、Delta Lake、Apache Hudiなどのオープンテーブル形式を介して、データレイクのストレージにデータウェアハウスの機能を追加します。これらの形式は、ACIDトランザクション、スキーマの適用、テーブルの過去のバージョンへのタイムトラベルを実現します。Databricksの研究者は、2021年の論文でこのアーキテクチャを説明しました。

機械学習におけるデータレイク#

コンピュータービジョンチームにとって、データレイクにはすべてのカメラフレーム、撮影時のメタデータ、アノテーション、そしてデプロイ済みモデルが生成した予測が格納されます。自動運転車の開発では、車両群の走行ログをアップロードしてマイニングし、雨の夜道を歩く歩行者などの希少なシーンを見つけ、ラベル付けしてトレーニングセットに追加します。医療では、1つのデータレイクに集めた匿名化済みのスキャン画像やレポートが、医用画像解析モデルのデータになります。本番環境の予測をレビューと再ラベル付けのためにデータレイクへ戻すことで、データフライホイールが形成されます。また、テーブルスナップショットやDVCなどのツールを使うと、各モデルのトレーニングに使用した正確なデータバージョンを固定できます。特徴量ストアやベクトルデータベースはデータレイク上に構築されることが多く、生ファイルから抽出した特徴量や埋め込みを提供します。

Ultralytics Platformでは、Amazon S3、Google Cloud Storage、Azure Blob Storage内のフォルダーを、コピーをアップロードせずにトレーニングデータセットにできます。読み取り専用の認証情報を使い、インポートごとに最大500,000個のオブジェクトをその場でインデックス化し、画像と同じ場所にあるYOLOの.txtラベルファイルを解析して、フォルダー名からtrain、val、testの分割を割り当てます。各インデックス画像はオブジェクトのバージョンに固定されるため、データレイク内でファイルが上書きされた画像があれば、Platformは処理を安全側に停止します。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう