スポンサーリンク
Azure

Azureデータ分析入門:CSVからParquet、Delta Lakeまでデータ拡張子を徹底解説

Azure
この記事は約7分で読めます。

Azureなどのクラウド環境でデータを扱う際、「CSVやJSONは知っているけれど、最近Parquetやpklといった見慣れないファイルが出てきて戸惑っている…」と感じることはありませんか?

この記事では、データの世界で頻繁に使われる主要な形式について、それぞれの正式名称読み方メリット・デメリットフォーマット例、そしてPythonでの読み込み方を、一つひとつ丁寧に解説します。

身近なテキスト形式

人間が直接読んで理解できる、最も基本的なフォーマット群です。

📜 CSV

項目内容
正式名称Comma-Separated Values
読み方シーエスブイ
メリット人間が直接読め、Excel等で編集も簡単。構造が単純で多くのシステムが対応。
デメリットデータ型の区別がなく、階層のような複雑な構造は表現できない。
フォーマットのサンプル:
id,name,age,city
1,Sato,35,Tokyo
2,Suzuki,28,Osaka
Pythonでの読み込み

データ分析で定番のPandasライブラリを使うのが最も一般的です。

# pandasは、Pythonで表形式のデータを扱うための強力なライブラリです
import pandas as pd

# CSVファイルを読み込み、DataFrameという高機能な表データにします
df = pd.read_csv('your_file.csv')
print(df)

📄 JSON

項目内容
正式名称JavaScript Object Notation
読み方ジェイソン
メリット階層構造を表現でき、データ型も区別可能。Web APIの標準形式で扱いやすい。
デメリットキー名を毎回記述するため冗長になりがちで、大規模データの分析には向かない。
フォーマットのサンプル:
{
  "id": 1,
  "name": "Sato",
  "address": { "city": "Tokyo" },
  "skills": ["SQL", "Python"]
}
Pythonでの読み込み

Pythonに標準で入っている**jsonライブラリ**で簡単に扱えます。

import json

# JSONファイルを読み込み、Pythonの辞書やリストに変換します
with open('your_file.json', 'r') as f:
    data = json.load(f)
print(data['name'])

📋 YAML

項目内容
正式名称YAML Ain’t Markup Language
読み方ヤムル
メリットインデントによるクリーンな見た目で可読性が高く、設定が分かりやすいコメントも記述可能。
デメリットインデントがずれるとエラーになる。データ交換用途ではJSONほど一般的ではない。
Pythonでの読み込み

PyYAMLという外部ライブラリをインストールして使います。

# 最初にライブラリをインストールします: pip install PyYAML
import yaml

with open('your_file.yaml', 'r') as f:
 	data = yaml.safe_load(f)
print(data['name'])

大規模データ分析の専門形式

ここからはコンピュータが効率的に処理するために作られた、分析用途に特化したフォーマット群です。

🗄️ Parquet

Parquetは、大量のデータを高速に分析するために生まれた、列指向のバイナリファイルです。現在、大規模データ分析の世界では**事実上の標準(デファクトスタンダード)**となっています。 「列指向」とは、データを列ごとにまとめて保存する仕組みです。分析で特定の列だけ(例えば「年齢」列だけ)が必要な時、関係ない列(「名前」や「住所」など)を一切読まずに済むため、処理が劇的に速くなります。

項目内容
正式名称Apache Parquet
読み方パーケット
メリット列指向のため分析クエリが非常に高速で、圧縮率も高くストレージコストを削減できる。
デメリットバイナリ形式で人間は直接読めず、行単位での頻繁な更新や追記が苦手。
Pythonでの読み込み

PandasPyArrowライブラリを組み合わせて使います。

# 最初にライブラリをインストールします: pip install pandas pyarrow
import pandas as pd

df = pd.read_parquet('your_file.parquet')
print(df)

🎞️ Avro

項目内容
正式名称Apache Avro
読み方アブロ
メリットスキーマの変更に柔軟に対応でき、行指向のためデータの書き込みが高速。
デメリット分析クエリ性能ではParquetに劣り、バイナリ形式で人間は直接読めない。
Pythonでの読み込み

fastavroという外部ライブラリを使います。

# 最初にライブラリをインストールします: pip install fastavro
from fastavro import reader

with open('your_file.avro', 'rb') as f:
    for record in reader(f):
        print(record)

💎 Delta Lake

項目内容
正式名称Delta Lake
読み方デルタレイク
メリットACIDトランザクションでデータの信頼性を保証し、過去のデータ状態に戻せるタイムトラベル機能も持つ。
デメリット通常のParquetより管理が複雑になり、特定プラットフォームとの親和性が高い。
Pythonでの読み込み

deltalakeという外部ライブラリを使います。Delta Lakeは単一のファイルではなく、フォルダ単位でテーブルを管理します。

# 最初にライブラリをインストールします: pip install deltalake
from deltalake import DeltaTable

dt = DeltaTable('path/to/delta_table/')
df = dt.to_pandas()
print(df)

Python専用形式

🤖 Pickle

項目内容
正式名称Pickle
読み方ピクル
メリット機械学習モデルなど、ほぼ全てのPythonオブジェクトを簡単に保存・復元できる。
デメリット重大なセキュリティリスクがあり、Python専用で他言語との互換性もない。
Pythonでの読み込み

Pythonに標準で入っている**pickle**ライブラリを使います。

import pickle

# 'rb'はバイナリ読み込みモードを意味します
with open('your_file.pkl', 'rb') as f:
    loaded_object = pickle.load(f)
print(loaded_object)

Azureでの使い分けまとめ

  • CSV/JSON: 手軽なデータの「入り口」として。
  • YAML: Azure Pipelinesなど、インフラやCI/CDの「構成を定義する設計図」として。
  • Avro: Azure Event Hubsなどを使った、リアルタイムで流れ込んでくる「ストリーミングデータ」の処理に。
  • Parquet: 大規模データを分析する際の、高速な「中間・最終データ」として。
  • Delta Lake: Azure DatabracksSynapse Analyticsで、更新可能で信頼性の高い「データ基盤(レイクハウス)」を構築する際に。
  • Pickle: Azure Machine LearningにおけるPythonで作られた「AIモデル」の保存と展開に。

コメント

タイトルとURLをコピーしました