DEA / ドメイン3 データ運用とサポート
Amazon SageMaker Unified Studio とデータの準備
Unified Studio は、AWS のデータ、分析、AI/ML のサービスを1つのブラウザの画面にまとめた統合開発環境です。 のクエリ、Jupyter のノートブック、ビジュアル 、ワークフロー、データカタログ (Amazon SageMaker Catalog)、生成 AI のアプリケーション開発を、同じ「プロジェクト」の中で扱えます。次世代の Amazon SageMaker の中心となる画面です。
DEA では、変換の前にデータを準備・探索・クリーニングする場として SageMaker Unified Studio を使うこと、そしてドメイン、ドメインユニット、プロジェクトの関係が問われます。
Point
- Unified = 統合された の意味です。分析、データ処理、機械学習、生成 AI の道具を1か所に統合したことを表します。
- Domain (ドメイン) は組織全体の器、Domain unit (ドメインユニット) は部門やチームの単位、Project (プロジェクト) はチームの作業場所です。
- 和訳
- Unify: 統合する、一つにする
- Weblio英和辞書「unify」
概要
Unified Studio の構成は、組織の構造に合わせた入れ子になっています。
| 概念 | 役割 |
|---|---|
| ドメイン | 資産 (データ)、利用者、プロジェクトをまとめる最上位の器です。企業全体で1つにも、事業部ごとに複数にもできます。 |
| ドメインユニット | ドメインの中で、部門やチームごとに資産や権限を整理する単位です。ドメインユニットの所有者に、プロジェクトの作成などの権限を委ねられます。 |
| プロジェクト | チームの作業場所で、コード (ノートブック、クエリ、ワークフロー)、データの権限、計算資源をまとめます。ビジネス上の文脈、共同作業の境界、権限の境界の3つの役割を持ちます。 |
| プロジェクトプロファイル | プロジェクトのひな形です。どのツールや計算資源 (ブループリント) を使えるかを決めます。ドメインの管理者が作ります。 |
| ブループリント | のワークグループ、 Serverless、 Serverless、ワークフロー用の 環境などを作る設定です。 |
| SageMaker Catalog | プロジェクトが公開したデータ資産の目録です。ほかのプロジェクトは購読 (サブスクライブ) を申請し、承認されるとアクセスできます (#46)。 |
主要技術
①ドメイン、ドメインユニット、プロジェクトの使い方 ⚠️ 頻出
| やりたいこと | 使う仕組み |
|---|---|
| 会社全体のデータと利用者を1か所で管理したい | ドメインを作ります。利用者の認証は 、、SAML のいずれかを使えます。 |
| 部門ごとに、誰がプロジェクトを作れるかを分けたい | ドメインユニットを作り、プロジェクト作成のポリシーをドメインユニット単位で付与します。 |
| チームでノートブックやクエリを共同で作りたい | プロジェクトを作り、メンバーを所有者 (owner) か投稿者 (contributor) として追加します。 |
| チームが使えるツールを統一したい | プロジェクトプロファイルで、有効にするブループリントを決めます。 |
| 別のチームのデータを使いたい | Catalog で資産を探し、購読を申請します。所有側のプロジェクトが承認すると権限が付与されます。 |
プロジェクトの中で作ったものは、SageMaker Catalog に公開しない限り、プロジェクトの外からは見えません。プロジェクトごとに Git リポジトリ (既定は AWS CodeCommit、GitHub や GitLab などにも接続可能) と の作業用の場所が用意されます。
⚠️ 頻出: 「部門ごとにデータと権限を分けて管理し、部門の責任者に委ねたい」はドメインユニット、「チームの作業と権限の境界」はプロジェクトです。
②データの探索とクエリ
| ツール | 内容 | データ準備での使い方 |
|---|---|---|
| クエリエディタ / Querybook | や をエンジンにして を実行し、結果をその場でグラフにします | 件数、欠損、重複、値の分布を SQL で確かめます。 |
| JupyterLab のノートブック | Python や PySpark のコードをセル単位で実行します | pandas や でデータを読み、分布の確認、の検出、クリーニングを試します。 |
| Athena の Spark | の Spark でノートブックのコードを実行します | 大きなデータを Spark で探索します (#53)。 |
| Serverless / のセッション | 計算資源をつないで Spark を実行します | 大規模な変換を対話的に試します。 |
ノートブックは各利用者の「スペース」(計算インスタンス、 のボリューム、JupyterLab のアプリケーション) で動き、ほかのメンバーの作業と干渉しません。
③ビジュアル ETL とワークフロー
| 機能 | 内容 |
|---|---|
| ビジュアル | 画面でソース、変換、ターゲットをつなぐと、 の Python コードが自動で生成されます。生成 AI に自然な文章で指示して流れを作ることもできます。 |
| ワークフロー | () をもとにしたワークフローで、ノートブック、クエリ、ETL のジョブを順に動かし、スケジュールで実行します。 |
| データ品質 | のルールで、テーブルの品質を確かめます (#57)。 |
④SageMaker Data Wrangler と Jupyter Notebook による検証とクリーニング
試験ガイドでは、データの検証とクリーニングの道具として、Jupyter Notebook と Data Wrangler が挙げられています。
| 道具 | 内容 | 向く場面 |
|---|---|---|
| Jupyter Notebook | コードで自由に検証・クリーニングします | 独自のロジックで欠損の補完やの除去を行い、結果を確かめながら進めたい |
| SageMaker Data Wrangler | 画面の操作で、データの取り込み、品質と分布の確認 (データ品質とインサイトのレポート)、変換、書き出しを行います | コードをあまり書かずに、向けの前処理を組み立てたい |
Data Wrangler は現在 Amazon SageMaker Canvas に統合されており、画面の操作に加えて自然な文章でもデータの確認と変換を指示できます。作った変換の流れは、 や SageMaker Feature Store への書き出し、SageMaker Pipelines への組み込みに使えます。
| 道具 | 主な利用者 | 選ぶ条件 |
|---|---|---|
| SageMaker Unified Studio (ノートブック、クエリ) | データエンジニア、アナリスト、データサイエンティスト | 分析と開発を1つの画面で、チームで共同して行いたい |
| SageMaker Data Wrangler (Canvas) | データサイエンティスト | 機械学習の前処理を画面で組み立てたい |
| ビジネスアナリスト | 機械学習に限らず、コードを書かずにデータを整えたい (#56) |
試験対策
①判断マトリクス
| 問題文のキーワード | 選ぶもの | 理由 |
|---|---|---|
| 分析・データ処理・ML を1つの画面で、チームで共同作業 | Unified Studio のプロジェクト | ツールと権限をプロジェクト単位でまとめます。 |
| 部門ごとにプロジェクトの作成権限を委ねたい | ドメインユニットと認可のポリシー | 部門単位で権限を管理します。 |
| プロジェクトで使えるツールや計算資源をそろえたい | プロジェクトプロファイル (ブループリント) | ドメインの管理者がひな形を決めます。 |
| 他チームのデータへのアクセスを申請・承認 | SageMaker Catalog の購読 | 所有側の承認で権限を付与します。 |
| 変換前のデータを で探索 | クエリエディタ ( / ) | 件数や分布を手早く確かめます。 |
| Python で自由に検証・クリーニング | JupyterLab のノートブック | コードで試しながら進めます。 |
| コードを少なく、ML 向けの前処理を画面で | SageMaker Data Wrangler (Canvas に統合) | 品質レポートと変換を画面で扱えます。 |
| 画面で を作り、 のコードを自動生成 | ビジュアル ETL | Spark の知識がなくても作れます。 |
②よくある誤答
- プロジェクトの中のデータが、自動でドメイン全体に共有されると考えること。共有するには Catalog に公開し、購読を承認します。
- ドメインユニットとプロジェクトを同じものと考えること。ドメインユニットは組織の単位、プロジェクトは作業の単位です。
- SageMaker Data Wrangler を独立したサービスとして探すこと。現在は SageMaker Canvas の中で使います。