Azureなどのクラウド環境でデータを扱う際、「CSVやJSONは知っているけれど、最近Parquetやpklといった見慣れないファイルが出てきて戸惑っている…」と感じることはありませんか?
この記事では、データの世界で頻繁に使われる主要な形式について、それぞれの正式名称、読み方、メリット・デメリット、フォーマット例、そしてPythonでの読み込み方を、一つひとつ丁寧に解説します。
身近なテキスト形式
人間が直接読んで理解できる、最も基本的なフォーマット群です。
📜 CSV
| 項目 | 内容 |
| 正式名称 | Comma-Separated Values |
| 読み方 | シーエスブイ |
| メリット | 人間が直接読め、Excel等で編集も簡単。構造が単純で多くのシステムが対応。 |
| デメリット | データ型の区別がなく、階層のような複雑な構造は表現できない。 |
フォーマットのサンプル:
id,name,age,city
1,Sato,35,Tokyo
2,Suzuki,28,OsakaPythonでの読み込み
データ分析で定番の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での読み込み
PandasとPyArrowライブラリを組み合わせて使います。
# 最初にライブラリをインストールします: 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 DatabracksやSynapse Analyticsで、更新可能で信頼性の高い「データ基盤(レイクハウス)」を構築する際に。
- Pickle: Azure Machine LearningにおけるPythonで作られた「AIモデル」の保存と展開に。


コメント