【MLA-C01】WEB問題集:MLのためのデータ準備編

WEB問題集

MLA-C01#1(data-preparation)

あるEC企業は、過去5年分のクリックストリームデータ(数TB、CSV形式)をS3に保存しています。データサイエンティストがAthenaで頻繁にユーザーIDと日付で集計クエリを実行しますが、スキャン量が多く料金が高騰しています。データ品質の劣化なくクエリコストとレイテンシを最小化する方法はどれですか。

ディスカッション 0

正解:D

正解の根拠

Athenaのスキャン量課金を最小化するには、列指向フォーマット(Parquet/ORC)への変換と、頻繁なフィルタ列でのパーティション分割が最も効果的です。CTAS(CREATE TABLE AS SELECT)文を1回実行するだけで、Snappy圧縮Parquet+年月日パーティションのテーブルを生成でき、列プルーニングとパーティションプルーニングの両方が効くため、クエリスキャン量を90%以上削減できます。

フォーマット別スキャン量比較

形式圧縮列プルーニング典型的削減率
CSVなし不可0%
CSV+gzipあり不可70%
Parquet+Snappyあり90%以上

CTAS例

CREATE TABLE clicks_parquet
WITH (format='PARQUET', parquet_compression='SNAPPY',
      partitioned_by=ARRAY['year','month','day'],
      external_location='s3://bucket/clicks_parquet/')
AS SELECT user_id, event, year, month, day FROM clicks_csv;

不正解の理由

  • A: スキーマ再検出やキャッシュではスキャン量自体は減らず、根本的なコスト最適化になりません。
  • C: S3 Selectは1オブジェクト単位の絞り込みであり、Athenaの集計クエリ全体のスキャン削減には適しません。
  • B: RDSへのロードは追加コストと運用負担が増え、TB級データには不向きです。

参考:Athena CTAS

MLA-C01#2(data-preparation)

あるヘルスケア企業は、患者データに含まれるPII(氏名・社会保障番号・電話番号など)を学習前にマスクする必要があります。GUI操作で機微情報を検出・変換し、データサイエンティストの工数を最小化したい場合、組み合わせとして最適なものはどれですか。

ディスカッション 0

正解:A

正解の根拠

Amazon MacieはS3上のPIIや機微データをMLで自動検出するセキュリティサービスです。検出結果に基づき、AWS Glue DataBrewのマスキング/暗号化/シャッフル/置換などGUIレシピで非開発者でも匿名化できます。コーディング不要のため、データサイエンティスト工数を最小化できます。

マスキング手段の比較

サービス役割必要スキル
MaciePII検出GUI
DataBrew変換・マスキングGUIレシピ
Glue ETLカスタム変換PySpark
ComprehendNLPエンティティ抽出API

DataBrewレシピ例

{
  "Action": "MASK_CUSTOM",
  "SourceColumn": "ssn",
  "MaskMode": "REPLACE_ALL"
}

不正解の理由

  • D: 列除外のみで実データの匿名化ができません。
  • C: Comprehendは医療向け(Comprehend Medical)も含めAPI実装が必要で工数増です。
  • B: Object Lambdaは取得時変換であり、データレイク全体の永続的匿名化には不向きです。

参考:DataBrew マスキング

MLA-C01#3(data-preparation)

あるメーカーは、複数のオンプレミスNASに保存された100TBの製造画像データをS3に移行し、SageMakerで学習に利用したいと考えています。回線帯域は1Gbpsで、転送に1か月以上かけることは許容されません。最適な方法はどれですか。

ディスカッション 0

正解:C

正解の根拠

1Gbps回線では100TBの転送に理論上約9日(実効帯域でさらに長期化)かかり、業務影響が大きいため、Snowball Edge Storage Optimizedで物理デバイス輸送する方が早く確実です。1台あたり80TB級の容量があり、複数台並列で1か月以内に完了できます。

データ移行手段の比較

手段適合容量所要時間
DataSync〜数TB回線次第
Snowball Edge数十TB/台約1週間/台
SnowmobilePB級数週間
Storage Gateway段階的常時同期

不正解の理由

  • A: 1Gbpsで100TBは時間がかかりすぎ、業務帯域を圧迫します。
  • B: Storage Gatewayは継続的なハイブリッド利用向けで一括移行手段ではありません。
  • D: マルチパートアップロードでも回線帯域がボトルネックです。

参考:AWS Snowball

MLA-C01#4(data-preparation)

機械学習チームは、複数モデル間で再利用するためにユーザー特徴量(年齢・購買履歴集計など)を一元管理し、リアルタイム推論時には数十ミリ秒以内に取得し、学習時には時点整合の履歴を取得したいです。最適なサービスはどれですか。

ディスカッション 0

正解:B

正解の読拠

SageMaker Feature Storeはオンラインストア(低レイテンシKey-Valueストア)とオフラインストア(S3+Iceberg/Glue Catalog)を一体提供します。オンラインは推論用に数msで取得でき、オフラインはイベント時刻ベースのpoint-in-timeクエリで学習用時系列特徴量を再現できます。

機能対応表

機能オンラインオフライン
レイテンシ数ms
用途リアルタイム推論学習・バックテスト
保管マネージドKVSS3+Iceberg

取り込み例

fg.ingest(data_frame=df, max_workers=4)

不正解の理由

  • D: DynamoDB自前構築では時点整合のpoint-in-timeクエリ実装に大きな工数が必要です。
  • C: Redshift+ElastiCacheでも同様に独自実装が要りスキーマ整合管理が複雑です。
  • A: Auroraは汎用RDBで特徴量管理機能を備えていません。

参考:SageMaker Feature Store

MLA-C01#5(data-preparation)

データサイエンティストが日次バッチで生成されるS3上のJSONログに対して品質ルール(必須カラム存在、一意性、値域)を宣言的に記述しモニタリングしたいです。最も少ないコードで実装できるのはどれですか。

ディスカッション 0

正解:B

正解の根拠

AWS Glue Data Qualityは、宣言的なDSLであるDQDLでルールを記述し、Glueジョブやデータカタログテーブルに対し品質評価を行えます。マネージドのため最小コードでルール検査が可能で、結果はCloudWatchやEventBridgeに連携できます。

DQDL例

Rules = [
  IsComplete "user_id",
  Uniqueness "session_id" > 0.99,
  ColumnValues "age" between 0 and 120
]

主要選択肢比較

サービスコード量運用
Glue Data Qualityマネージド
Deequ on EMRクラスタ管理要
Lambda+Pydantic独自実装

不正解の理由

  • D: DeequはOSSで強力ですがEMR運用が必要です。
  • A: Lambda独自スクリプトは保守負荷が高くなります。
  • C: Macieは機微情報検出で品質評価ではありません。

参考:Glue Data Quality