AvroファイルとParquetファイルの変換
SQL Transformationsは、AvroおよびParquetファイル形式をデータソースとしてサポートしています。 これらの形式により、SQL TransformationsはCSVおよびJSONファイルよりも効率的に大容量データセットを処理でき、数百万件のレコードを数秒で処理できます。 圧縮ストレージにより、ファイルサイズと転送時間が削減され、効率的なデータ処理と最新のデータレイクアーキテクチャとの統合が可能になります。
設定手順
データソースの追加と出力の設定に関する手順については、データソースの設定ドキュメントを参照してください。 このページでは、AvroおよびParquet固有の機能と動作に焦点を当てます。
SQL TransformationsによるAvroファイルとParquetファイルの処理方法
SQL Transformationsは、CSVのようなテキストベースの形式とは異なる方法でAvroおよびParquetファイルを処理します。 どちらの形式にも、ファイル自体にスキーマ情報が含まれています。 SQL Transformationsはこのスキーマを自動的に読み取り、手動設定を必要とせずに使用可能なカラムとデータ型を識別します。
Parquetファイルの場合、SQL Transformationsは行全体を処理するのではなく、クエリに必要なカラムのみを読み取ります。 Parquetの組み込み圧縮により、非圧縮テキスト形式と比較してファイルサイズも削減され、データの抽出と読み込みが高速化されます。
結果をParquet形式で出力して、下流のワークフローでパフォーマンスを向上させることもできます。
例: Parquetファイルから売上データを分析する
この例では、AWS S3にParquetファイルとして保存されている四半期売上データを処理します。 トランザクションレコードを地域別売上パフォーマンスのInsightsに変換し、下流処理を最適化するために結果をParquet形式で出力します。
AWS S3からのParquetデータソース設定
設定:
- データソース名:
quarterly_sales - データソースタイプ: コンテンツストリーム(S3 Download fileアクションから)
- コンテンツ入力ストリーム: ファイルコンテンツステップ 2データピル
- ファイル形式: Parquet
- カラムスキーマタイプ: 推測
サンプルデータ構造:
{
"transaction_id": 847291,
"sale_date": "2024-10-15",
"customer_id": 28401,
"customer_region": "West Coast",
"product_name": "Wireless Headphones",
"product_category": "Electronics",
"product_price": 299.99
}地域別売上分析のSQLクエリ:
SELECT
customer_region AS region,
COUNT(*) AS total_transactions,
SUM(product_price) AS total_revenue,
AVG(product_price) AS avg_order_value
FROM quarterly_sales
WHERE sale_date >= '2024-10-01'
GROUP BY customer_region
ORDER BY total_revenue DESCこのクエリは、売上トランザクションを地域別に集計します。 収益とトランザクション量が最も多い市場を特定し、各地域の平均購入額を計算します。
この変換により、詳細なトランザクションレコードが経営層向けの地域別パフォーマンス指標に変換されます。 結果は、ビジネスインテリジェンスツールとデータウェアハウスへ効率的に読み込むためにregional_sales_summary.parquetとして保存されます。
分析ツールに読み込んだ場合のサンプル結果(Q4地域別パフォーマンス):
| region | total_transactions | total_revenue | avg_order_value |
|---|---|---|---|
| 西海岸 | 2,847 | $1,247,892.15 | $438.22 |
| 東海岸 | 2,156 | $987,234.67 | $458.11 |
| 中西部 | 1,923 | $756,891.33 | $393.74 |
| 南部 | 1,654 | $612,445.89 | $370.23 |
例: Avroファイルからイベントデータを処理する
この例では、Workato FileStorage内のAvroファイルからユーザー操作イベントをページパフォーマンス指標に変換します。
Workato FileStorageからのAvroデータソース設定
設定:
- データソース名:
user_events - データソースタイプ: FileStorageファイル
- ファイルパス:
/user_interactions.avro - ファイル形式: Avro
- カラムスキーマタイプ: 推測
サンプルイベント構造:
{
"event_id": 1847392,
"user_id": 28401,
"user_session_duration": 245,
"user_session_pages_viewed": 5,
"event_data_action": "page_view",
"event_data_page_name": "/product/wireless-headphones"
}ページパフォーマンス分析のSQLクエリ:
SELECT
event_data_page_name AS page_path,
COUNT(*) AS total_visits,
AVG(user_session_duration) AS avg_session_time_seconds
FROM user_events
WHERE event_data_action = 'page_view'
GROUP BY event_data_page_name
ORDER BY total_visits DESCこの変換により、個々のユーザーイベントがページレベルのパフォーマンス指標に変換されます。 トラフィックとユーザーエンゲージメントが最も高いページを特定します。 SQL Transformationsは、BIツールまたは経営層向けレポートで使用するために、結果をpage_performance_analysis.csvとして保存します。
サンプル出力:
| page_path | total_visits | avg_session_time_seconds |
|---|---|---|
/home | 3,247 | 98.5 |
/category/electronics | 1,892 | 145.2 |
/product/wireless-headphones | 847 | 187.3 |
/search | 623 | 112.7 |
/account/dashboard | 412 | 201.5 |
/checkout | 156 | 312.8 |
ベストプラクティス
- どちらの形式にも埋め込みスキーマ情報が含まれているため、ほとんどの場合はスキーマを推測を使用します。
- Parquetファイルの場合、カラムナストレージのメリットを活用するために、SQLクエリで必要なカラムのみを選択します。
- 大規模なデータセット(1,000万件以上のレコード)を処理する場合は、変換時間を短縮するためにCSVまたはJSONではなくこれらの形式を選択します。
次に読む
最終更新日: