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形式で出力します。

Parquet S3設定例AWS S3からのParquetデータソース設定

設定:

  • データソース名: quarterly_sales
  • データソースタイプ: コンテンツストリーム(S3 Download fileアクションから)
  • コンテンツ入力ストリーム: ファイルコンテンツステップ 2データピル
  • ファイル形式: Parquet
  • カラムスキーマタイプ: 推測

サンプルデータ構造:

json
{
  "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クエリ:

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地域別パフォーマンス):

regiontotal_transactionstotal_revenueavg_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ファイルからユーザー操作イベントをページパフォーマンス指標に変換します。

Avro FileStorage設定例Workato FileStorageからのAvroデータソース設定

設定:

  • データソース名: user_events
  • データソースタイプ: FileStorageファイル
  • ファイルパス: /user_interactions.avro
  • ファイル形式: Avro
  • カラムスキーマタイプ: 推測

サンプルイベント構造:

json
{
  "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クエリ:

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_pathtotal_visitsavg_session_time_seconds
/home3,24798.5
/category/electronics1,892145.2
/product/wireless-headphones847187.3
/search623112.7
/account/dashboard412201.5
/checkout156312.8

ベストプラクティス

  • どちらの形式にも埋め込みスキーマ情報が含まれているため、ほとんどの場合はスキーマを推測を使用します。
  • Parquetファイルの場合、カラムナストレージのメリットを活用するために、SQLクエリで必要なカラムのみを選択します。
  • 大規模なデータセット(1,000万件以上のレコード)を処理する場合は、変換時間を短縮するためにCSVまたはJSONではなくこれらの形式を選択します。
  1. クエリの設定
  2. 出力の設定
  3. 出力フィールド

最終更新日: