カスタムビューの定義
CData Cmdlets PowerShell Module for HDFS を使用すると、事前設定されたクエリによって内容が決定される仮想テーブルを定義できます。これらはユーザー定義ビューと呼ばれ、a tool からドライバーを使用する場合など、ドライバーに発行されるクエリを直接制御できない場合に役立ちます。 ユーザー定義ビューを使用して、何があっても常に適用されるプレディケートを定義することができます。ビューへのクエリで追加のプレディケートが指定されている場合、それらはビューの一部としてすでに定義されているクエリと結合されます。
例えば、特定の都市の顧客のみをリストするUserViews.RCustomers と呼ばれるユーザー定義ビューは、次のようになります:
SELECT * FROM Customers WHERE City = 'Raleigh';ドライバーへのクエリは次のようになります:
SELECT * FROM UserViews.RCustomers WHERE Status = 'Active';ソースへの効果的なクエリの結果は次のようになります:
SELECT * FROM Customers WHERE City = 'Raleigh' AND Status = 'Active';これは、ビュークエリとビュー定義を効果的に組み合わせた、ユーザー定義ビューへのクエリの非常にシンプルな例です。これらのクエリをはるかに複雑なパターンで構成することが可能です。すべてのSQL 操作は両方のクエリでサポートされ、必要に応じて組み合わされます。
コンフィギュレーションファイルでビューの定義
ユーザー定義ビューは、Location フォルダ内のUserDefinedViews.json というJSON 形式のコンフィギュレーションファイルで定義されています。本製品 は、Location フォルダ内にUserDefinedViews.json というファイルを検知すると、自動的にビューを検出します。また、複数のビュー定義を持ち、UserDefinedViews 接続プロパティを使用して制御することも可能です。UserDefinedViews プロパティが指定されている場合、このファイルで定義されているビューのみが本製品 によって検知されます。
このユーザー定義ビューのコンフィギュレーションファイルは、次のようにフォーマットされています。
- 各ルートエレメントはビューの名前を定義します。
- 各ルートエレメントには、query と呼ばれる子エレメントが含まれており、この子エレメントにはビューのカスタムSQL クエリが含まれています。
次に例を示します。
{ "MyView": { "query": "SELECT * FROM Files WHERE MyColumn = 'value'" }, "MyView2": { "query": "SELECT * FROM MyTable WHERE Id IN (1,2,3)" } }
DDL ステートメントを使用したビューの定義
本製品 は、CREATE LOCAL VIEW、ALTER LOCAL VIEW、DROP LOCAL VIEW などのDDL ステートメントを介してスキーマを作成したり、変更したりすることもできます。
ビューの作成
DDL ステートメントを使用して新しいビューを作成するには、以下のようにビュー名とクエリを指定します。
CREATE LOCAL VIEW [MyViewName] AS SELECT * FROM Customers LIMIT 20;
ビューはJSON コンフィギュレーションファイルで作成され、検出可能になります。
ビューの変更
既存のビューを変更するには、代わりに使用したい新しいクエリと一緒に既存のビュー名を指定します。
ALTER LOCAL VIEW [MyViewName] AS SELECT * FROM Customers WHERE TimeModified > '3/1/2020';
ビューはJSON コンフィギュレーションファイルで更新されます。
ビューの削除
既存のビューを削除するには、代わりに使用したい新しいクエリと一緒に既存のスキーマ名を指定します。
DROP LOCAL VIEW [MyViewName]
ビューはJSON コンフィギュレーションファイルから削除され、クエリできなくなります。