AI資格ドリル
資格を選ぶ↓

第6章 データエンジニアリング基礎(環境構築・データ収集)

DS検定のコンテナ・API・JSONとYAML

DS検定(リテラシーレベル)の第6章では、分析の環境を作る技術と、データを集める技術が★1つ星で出題範囲に入っています。環境を作る側は、コンテナ技術とDockerイメージ、クラウドのマネージドサービス、JSONとYAMLの設定ファイルです。データを集める側は、SDKとAPI、Webクローラー、HTTPSとSFTPです。このページでは、3つのアプリを動かすときのOSの数と、同じ設定をJSONとYAMLで書き比べる例で確かめます。どれも、仕組みを説明でき、決まった形式を読み書きできるレベルが問われます。

このページは試験の学習用の整理です。数字や設定の内容はすべて説明用の架空の値です。

公式情報の確認

試験日、料金、申込条件、試験方式など変動する情報は、公式情報を最終確認してください。 当サイトの一次情報確認日: 2026-10-02。

試験の出題範囲・実施要項は変動するため、受験前に公式情報を確認してください。

結論

  1. コンテナは、アプリごとに隔離されたプロセス。複数のコンテナが同じカーネルを共有するので、3つのアプリでもOS全体を3つ用意するVMより軽い
  2. Dockerイメージは、実行に必要なファイル・ライブラリ・設定をまとめたパッケージ。作成後は変更できない
  3. JSONは波括弧とカンマ、YAMLはインデントとハイフンで書く。YAMLは#でコメントを書け、タブをインデントに使ってはならない
  4. データ収集は、提供元のAPI・SDK、静的ページのスクレイピング、HTTPS・SFTPでの格納と受け取りが、それぞれ別の★1つ星項目

公式チェックリストの★1つ星の項目

データサイエンティスト協会の公式スキルチェックリスト(データエンジニアリング領域)で、このページの範囲にあたる★1つ星の項目は、次の6つです。

項目★1つ星で求められること
コンテナ技術・Dockerイメージコンテナ技術の概要を理解し、既存のDockerイメージで分析環境を作れる
マネージドサービスAmazon SageMaker、Azure Machine Learning、Google Cloud Vertex AI、IBM watsonx.ai Studioなどで機械学習モデルを開発できる
YAML・JSONプロジェクトで指定される形式を理解し、構成・設定ファイルを適切に記述・管理できる
SDK・API対象プラットフォームが提供する機能(SDKやAPIなど)の概要を説明できる
Webクローラー・スクレイピングWebサイト上の静的コンテンツを分析用データとして収集できる
HTTPS・SFTP通信機能を用い、データを収集先に格納するための機能を実装できる

★1つ星は、コンテナを自分で設計する力ではなく、既存のDockerイメージを使って分析環境を作れるかどうかです。★2つ星にはDockerイメージの管理やKubernetesなどのコンテナオーケストレーションが入っており、このリテラシーレベルの範囲を超えます。

コンテナとVMで、3つのアプリのOSの数を数える

Docker公式ドキュメントでは、コンテナを、アプリの構成要素ごとに隔離されたプロセスと説明しています。ホストに事前に入れた依存関係に頼らず、必要なものを自分で備えているので、どこでも同じように動きます。一方、仮想マシン(VM)は、独自のカーネル・ハードウェアドライバ・プログラム・アプリを含むOS全体です。

分析用の3つのアプリ(データ取り込み、前処理、モデルの学習)を隔離して動かす場合を数えます。

方法OS(カーネル)理由
VM(1アプリにつき1台)3つアプリごとに、カーネルやドライバを含むOS全体が必要
コンテナ(3つのコンテナ)1つのカーネルを共有複数のコンテナが同じカーネルを共有する

VMでは3つのアプリに3つのOSが必要ですが、コンテナなら1つのカーネルを共有できます。Docker公式ドキュメントも、1つのアプリを隔離するためだけにVMを起動するのは負荷が大きいと述べています。コンテナが軽いのは、カーネルを共有し、OS全体を含まないからです。

コンテナの元になるのがDockerイメージです。公式ドキュメントでは、コンテナの実行に必要なファイル・バイナリ・ライブラリ・設定をまとめた標準化されたパッケージで、作成後は変更できず、ファイル変更を表すレイヤーの積み重ねでできていると説明されています。変更できないので、同じイメージから起動すれば、誰の環境でも同じ状態の分析環境になります。

同じ設定をJSONとYAMLで書き比べる

次の設定(分析ジョブの名前、使うデータ、実行する手順)を、JSONとYAMLで書き比べます。内容はどちらも同じです。

JSON

{
  "job": "sales-report",
  "data": "sales.csv",
  "steps": [
    "load",
    "clean",
    "train"
  ]
}

YAML

# 分析ジョブの設定
job: sales-report
data: sales.csv
steps:
  - load
  - clean
  - train

RFC 8259では、JSONのobjectを波括弧内の名前と値のペアの集合とし、名前の後をコロン、ペア間をカンマで区切ります。arrayは角括弧内の値の並びで、文字列は二重引用符で囲みます。YAML 1.2.2の仕様では、マッピングはコロンでキーと値を対応させ、シーケンスは各要素をハイフンと空白で示し、階層はインデントで表します。

書き比べると、違いは3点です。1つ目は区切りで、JSONは括弧とカンマ、YAMLはインデントとハイフンです。2つ目はコメントで、YAMLは#で書けますが、JSONの文法にはコメントの規則がありません。3つ目はインデントで、YAMLでは階層そのものを表すため、移植性のためにタブを使ってはならないと仕様に書かれています。JSONでは構造文字の前後の空白に意味はありません。JSONは括弧で構造を示し、YAMLはインデントで構造を示します。なお、YAML 1.2は、JSONの厳密な上位集合になることを主な目的にしています。

API・SDK・スクレイピング・HTTPS・SFTPの使い分け

データを集める手段は、提供元が何を用意しているかで変わります。公式チェックリストの★1つ星は、手段ごとに別の項目になっています。

  • API・SDK:クラウドサービスや分析ソフトウェアが提供する機能です。概要を説明できることが求められます
  • Webクローラー・スクレイピング:Webサイト上の静的コンテンツを分析用データとして集めます。対象サイトの利用規約は事前に確認します
  • HTTPS・SFTP:機器やシステムが持つ通信機能で、データを収集先に格納します。データ共有の領域では、SFTPサーバーなどからデータファイルをダウンロードして表計算ソフトに取り込む項目も★1つ星です

提供元がAPIやSDKを用意している場合は、まずその機能で取得できないかを確かめます。マネージドサービス(Amazon SageMaker、Azure Machine Learning、Google Cloud Vertex AI、IBM watsonx.ai Studioなど)は、分析環境をクラウド上で提供するサービスで、機械学習モデルの開発に使います。試験では、サービス名と「分析環境をクラウドで提供する」という役割を結びつけられれば十分です。

よくある質問

DS検定で、DockerやYAMLを書けるレベルまで必要ですか?

公式スキルチェックリスト(data_engineering.csv)の★1つ星は、コンテナ技術の概要の理解と、既存のDockerイメージを使った分析環境の構築、YAMLやJSONで書かれた設定ファイルの記述・管理です。ゼロから環境を設計する力ではなく、仕組みを説明でき、決まった形式で設定を読み書きできるレベルが目安です。

コンテナと仮想マシン(VM)は、何が違いますか?

Docker公式ドキュメントでは、VMは独自のカーネル・ハードウェアドライバ・プログラム・アプリを含むOS全体で、コンテナはアプリの構成要素ごとに隔離されたプロセスで、複数のコンテナが同じカーネルを共有すると説明されています。1つのアプリを隔離するためだけにVMを起動するのは負荷が大きい、とも書かれています。

JSONとYAMLの書き方の違いは何ですか?

JSONは波括弧の中に名前と値をコロンで結び、ペア間をカンマで区切り、文字列は二重引用符で囲みます。YAMLはインデントで階層を表し、リストは行頭のハイフンと空白で示します。YAMLは#でコメントを書けますが、JSONの文法にはコメントを書く規則がありません。

APIとスクレイピングは、どちらでデータを集めるのがよいですか?

提供元がAPIやSDKを用意しているなら、その機能で取得するのが基本です。公式チェックリストでは、SDKやAPIの概要の説明と、Webクローラー・スクレイピングで静的コンテンツを集めることが、別々の★1つ星項目になっています。スクレイピングを行う前に、対象サイトの利用規約を確認してください。

次に読むと効率的なページ

執筆: ミナト編集部(運営者情報を見る)