Q1.あるオンライン決済サービスでは、Unity Catalogを有効化したAzure Databricksワークスペースを運用しており、その中にCatalog1という名前のカタログがあります。
Catalog1には、Transactionsという名前のテーブルが格納されています。
Transactionsテーブルの列構成は次のとおりです。
transaction_id(トランザクションID)
customer_name(顧客名)
email_address(メールアドレス)
credit_card_number(クレジットカード番号)
transaction_amount(取引金額)
担当のビジネスアナリストがTransactionsテーブルの全行を照会できるように構成する必要があります。
この構成は、次の要件をすべて満たさなければなりません。
email_address列とcredit_card_number列の完全な値をアナリストに参照させない。
各メールアドレスについては「@」より後ろの部分だけをアナリストが参照できるようにする。
各クレジットカード番号については末尾4桁だけをアナリストが参照できるようにする。
アナリストがエラーを起こさずにテーブルを照会できるようにする。
最小特権の原則に従う。
何を実施すべきですか。
解答を見る
列マスクは、元の列値を利用者へそのまま返さず、Unity Catalogに登録したユーザー定義関数の結果へ置き換える機能です。
email_addressには「@」以降を返す関数を、credit_card_numberには末尾4桁だけを返す関数を設定できます。
テーブルへのSELECT権限を付与するため、アナリストは全行と非機密列をエラーなく照会できます。
行フィルターは行自体を制限する機能であり、今回の列値の秘匿には適しません。
機密列のSELECT権限を外す方法も照会エラーの原因となるため、列マスクが最小特権の要件を満たします。
行フィルターと列マスク
列 mask 句
Q2.あるデータ分析チームでは、Unity Catalogを有効化し、catalog1という名前のカタログを持つAzure Databricksワークスペースを利用しています。
このワークスペースにはgroup1という名前のグループが存在します。
これからcatalog1の中にschema1という名前のスキーマを作成する予定です。
group1については、次の要件をすべて満たすように構成する必要があります。
schema1にテーブルを作成できる。
テーブルを変更および照会できる。
スキーマおよびそのオブジェクトに対するアクセス許可は付与できない。
次のSQLステートメント(CREATE SCHEMA catalog1.schema1; に続くGRANT文)をどのように完成させればよいですか。
回答するには、回答領域で適切な選択肢を選択してください。
解答を見る
出題上は、USAGEによってschema1を使用でき、CREATE TABLEによってスキーマ内にテーブルを作成できます。
MANAGEや所有権は付与していないため、group1にはアクセス許可を管理する権限を与えません。
なお、現在のUnity CatalogではUSAGEではなくUSE CATALOGとUSE SCHEMAを使用し、付与先もTO ROLEではなくTO principalの形式です。
既存の全テーブルを照会・変更させる場合はSELECTとMODIFYを別途付与します。
この問題は旧構文を前提とした出題です。
Unity カタログ権限リファレンス
GRANT
Q3.あるチームでは、Unity Catalogが有効になっているAzure Databricksワークスペースを運用しています。
既存のスキーマにVolume1という名前の外部ボリュームを作成する必要があります。
Volume1は、Azure Storageコンテナー内のファイルを公開する役割を持ちます。
この構成は、次の要件をすべて満たさなければなりません。
認証にあたり、Databricks内へ資格情報を保存しなくてよいようにする。
ユーザーはファイルにアクセスできるが、ファイルは変更できないようにする。
最小特権の原則に従う。
どの種類の認証を構成し、どのアクセス許可をユーザーへ付与すべきですか。
回答するには、回答領域で適切な選択肢を選択してください。
解答を見る
Azure Databricks Access ConnectorはマネージドIDを使用してAzure Storageへ接続するため、Databricks内にクライアントシークレットなどの資格情報を保存したりローテーションしたりする必要がありません。
READ VOLUMEはボリューム内のファイルとディレクトリの読み取りを許可しますが、追加、削除、変更は許可しません。
BROWSE(参照)はオブジェクトを検出するための権限であり、ファイル内容は読み取れません。
WRITE VOLUMEはファイルの変更を許可するため要件外です。
したがって、DatabricksアクセスコネクタとREAD VOLUMEの組み合わせが最小特権を満たします。
Azure Data Lake Storage Gen2 (ADLS Gen2) 外部の場所に接続する
Q4.注:このセクションには、同一のシナリオと課題を扱う問題セットが1つ以上含まれています。
各問題では、その課題に対する個別のソリューションが提示されます。
提示されたソリューションが所定の目標を満たすかどうかを判断してください。
セット内では複数のソリューションが課題を解決する場合もあれば、どのソリューションも解決しない場合もあります。
このセクションの問題に回答すると、以前の問題へ戻ることはできません。
そのため、これらの問題はレビュー画面には表示されません。
レイクハウスを備え、Unity Catalogが有効になっているWorkspace1という名前のAzure Databricksワークスペースがあります。
また、DB1という名前のMicrosoft SQL Serverデータベースへの接続が構成されています。
DB1のスキーマとテーブルを公開し、次の要件をすべて満たす必要があります。
スキーマとテーブルをDatabricksで照会できること。
スキーマとテーブルが他のUnity Catalogオブジェクトと並んで表示されること。
データがDatabricks管理ストレージにコピーされないこと。
ソリューション:Lakeflow Connectパイプラインを作成し、DB1に接続します。
このソリューションは目標を満たしますか。
解答を見る
Lakeflow ConnectはSQL ServerのデータをAzure Databricksへ取り込み、宛先のDeltaテーブルに格納するため、「データをDatabricks管理ストレージへコピーしない」という要件を満たしません。
DB1のデータを移動せずに照会するには、Lakehouse Federationを使用して接続から外部カタログを作成します。
外部カタログは外部データベースのスキーマとテーブルをUnity Catalog内に表示し、元のSQL Server上のデータへ読み取り専用でアクセスできます。
したがって回答はいいえです。
Microsoft SQL Server でフェデレーション クエリを実行する
外部カタログの管理と操作
Q5.注:このセクションには、同一のシナリオと課題を扱う問題セットが1つ以上含まれています。
各問題では、その課題に対する個別のソリューションが提示されます。
提示されたソリューションが所定の目標を満たすかどうかを判断してください。
セット内では複数のソリューションが課題を解決する場合もあれば、どのソリューションも解決しない場合もあります。
このセクションの問題に回答すると、以前の問題へ戻ることはできません。
そのため、これらの問題はレビュー画面には表示されません。
レイクハウスを備え、Unity Catalogが有効になっているWorkspace1という名前のAzure Databricksワークスペースがあります。
また、DB1という名前のMicrosoft SQL Serverデータベースへの接続が構成されています。
DB1のスキーマとテーブルを公開し、次の要件をすべて満たす必要があります。
スキーマとテーブルをDatabricksで照会できること。
スキーマとテーブルが他のUnity Catalogオブジェクトと並んで表示されること。
データがDatabricks管理ストレージにコピーされないこと。
ソリューション:Databricksアクセスコネクタを作成します。
このソリューションは目標を満たしますか。
解答を見る
DB1のスキーマとテーブルをデータコピーなしでUnity Catalogへ公開するには、既存の接続を使用して外部カタログを作成します。
外部カタログは外部データベースを反映し、Databricksから読み取り専用のフェデレーションクエリを実行できます。
Azure Databricksアクセスコネクタは、マネージドIDをDatabricksへ関連付けてAzure Storageなどへの認証に利用するリソースであり、SQL ServerのスキーマやテーブルをUnity Catalogへ登録する機能ではありません。
したがって、このソリューションは要件を満たしません。
Microsoft SQL Server でフェデレーション クエリを実行する
外部カタログの管理と操作
Q6.注:このセクションには、同一のシナリオと課題を扱う問題セットが1つ以上含まれています。
各問題では、その課題に対する個別のソリューションが提示されます。
提示されたソリューションが所定の目標を満たすかどうかを判断してください。
セット内では複数のソリューションが課題を解決する場合もあれば、どのソリューションも解決しない場合もあります。
このセクションの問題に回答すると、以前の問題へ戻ることはできません。
そのため、これらの問題はレビュー画面には表示されません。
レイクハウスを備え、Unity Catalogが有効になっているWorkspace1という名前のAzure Databricksワークスペースがあります。
また、DB1という名前のMicrosoft SQL Serverデータベースへの接続が構成されています。
DB1のスキーマとテーブルを公開し、次の要件をすべて満たす必要があります。
スキーマとテーブルをDatabricksで照会できること。
スキーマとテーブルが他のUnity Catalogオブジェクトと並んで表示されること。
データがDatabricks管理ストレージにコピーされないこと。
ソリューション:カタログ エクスプローラーで外部カタログを作成します。
このソリューションは目標を満たしますか。
解答を見る
外部カタログは、外部データベースをUnity Catalog内に反映し、スキーマとテーブルを他のカタログオブジェクトと同様に表示して照会できるようにします。
Lakehouse Federationによるクエリフェデレーションでは、SQL Server上のデータをその場所に保持したまま読み取り専用で照会するため、Databricks管理ストレージへのコピーは発生しません。
したがって、カタログ エクスプローラーで外部カタログを作成するこのソリューションは、すべての要件を満たします。
クエリフェデレーションとは
外部カタログの管理と操作
Q7.注:このセクションには、同一のシナリオと課題を扱う問題セットが1つ以上含まれています。
各問題では、その課題に対する個別のソリューションが提示されます。
提示されたソリューションが所定の目標を満たすかどうかを判断してください。
セット内では複数のソリューションが課題を解決する場合もあれば、どのソリューションも解決しない場合もあります。
このセクションの問題に回答すると、以前の問題へ戻ることはできません。
そのため、これらの問題はレビュー画面には表示されません。
レイクハウスを備え、Unity Catalogが有効になっているWorkspace1という名前のAzure Databricksワークスペースがあります。
また、DB1という名前のMicrosoft SQL Serverデータベースへの接続が構成されています。
DB1のスキーマとテーブルを公開し、次の要件をすべて満たす必要があります。
スキーマとテーブルをDatabricksで照会できること。
スキーマとテーブルが他のUnity Catalogオブジェクトと並んで表示されること。
データがDatabricks管理ストレージにコピーされないこと。
ソリューション:Unity Catalogに新しいネイティブカタログを作成します。
このソリューションは目標を満たしますか。
解答を見る
通常のネイティブカタログを新規作成しても、SQL Server上のDB1のスキーマやテーブルは自動的に反映されません。
データをコピーせずにUnity Catalog内へ表示して照会するには、既存の接続を使用し、Lakehouse Federationの外部カタログを作成する必要があります。
外部カタログは外部データベースをミラー化し、元のSQL Serverにデータを保持したまま読み取り専用クエリを実行できます。
したがって、このソリューションは要件を満たしません。
クエリフェデレーションとは
外部カタログの管理と操作
Q8.サーバーレスコンピューティングを使用するAzure Databricksワークスペースがあります。
Lakeflow Jobsを用いてデータを取り込む必要があります。
新しいレコードは、利用可能になった時点でただちに処理しなければなりません。
この取り込みには、どの種類のジョブトリガーを使用すべきですか。
解答を見る
継続トリガーはジョブを常時実行状態に保ち、実行が完了または失敗すると次の実行を開始します。
そのため、一定のスケジュールを待たずに新しいレコードを継続的に処理する要件へ適しています。
ファイル到着トリガーは、監視対象のUnity Catalogストレージ場所に新しいファイルが到着した場合に限定されます。
本問では入力がファイルであると指定されていないため、継続トリガーが適切です。
なお、Lakeflow Jobsの継続トリガーは、SparkのContinuous Processingトリガーとは別の機能です。
スケジュールとトリガーを使用してジョブを自動化する
構造化ストリーミングの運用に関する考慮事項
Q9.Unity Catalogが有効化され、Salesという名前のマネージドDeltaテーブルを持つAzure Databricksワークスペースがあります。
Salesにはトランザクションデータが格納されており、列構成は次のとおりです。
transaction_id(文字列)
transaction_date(日付)
amount(10進数)
テーブルレベルのデータ品質強制を用いて、次のデータ品質要件を実装する必要があります。
amountは0より大きくなければならない。
transaction_idをNULLにしてはならない。
無効なレコードは、Salesテーブルへの書き込み時に拒否されなければならない。
何を実施すべきですか。
解答を見る
NOT NULL制約はtransaction_idへのNULLの格納を禁止し、amountが0より大きいことを定義したCHECK制約と組み合わせると、条件を満たさない書き込みがテーブルレベルで拒否されます。
これらはDeltaテーブルで強制されるデータ品質制約です。
WHERE句やビューは照会時に無効な行を除外するだけで、元テーブルへの不正データの書き込みは防止できません。
RLSも行の参照範囲を制御する機能であり、データ品質検証には使用しません。
Azure Databricks の制約
ADD CONSTRAINT 句
