クエリサービスでのデータアセットの整理

このドキュメントでは、Adobe Experience Platformクエリサービスで使用するデータアセット(データセット、ビュー、一時テーブルなど)を整理するためのベストプラクティスに関するガイダンスを提供します。 データの構造化方法と、この情報へのアクセス、更新、削除方法に関する情報について説明します。

Platform 内のデータアセットを論理的に整理することが重要です Data Lake 成長するにつれて クエリサービスは、サンドボックス内のデータアセットを論理的にグループ化できる SQL 構成を拡張します。 この編成方法を使用すると、データアセットを物理的に移動する必要なく、スキーマ間でデータアセットを共有できます。

はじめに

このドキュメントを続行する前に、 クエリサービス 機能と読み取り ユーザーインターフェイスガイド.

クエリサービスでのデータの整理

次の例は、Adobe Experience Platformクエリサービスを通じて、標準の SQL 構文を使用してデータを論理的に整理するために使用できる構成を示しています。 最初に、データポイントのコンテナとして機能するデータベースを作成する必要があります。 データベースには 1 つ以上のスキーマを含め、各スキーマには 1 つ以上のデータアセットへの参照(データセット、ビュー、一時テーブルなど)を含めることができます。 これらの参照には、データセット間の関係や関連付けが含まれます。

詳しくは、 クエリエディターユーザーガイド を参照してください。

サンドボックス内のデータセットを論理的に整理する次の SQL 構成がサポートされています。

CREATE DATABASE databaseA;
CREATE SCHEMA databaseA.schema1;
CREATE table t1 ...;
CREATE view v1 ...;
ALTER TABLE t1 ADD PRIMARY KEY (c1) NOT ENFORCED;
ALTER TABLE t2 ADD FOREIGN KEY (c1) REFERENCES t1(c1) NOT ENFORCED;

この例(簡潔にするために少し切り捨てられた)は、次の方法を示しています。 databaseA スキーマを含む schema1.

データアセットのスキーマへの関連付け

データアセットのコンテナとして機能するスキーマを作成したら、標準の SQL ALTER TABLE 構文を使用して、各データセットをデータベース内の 1 つ以上のスキーマに関連付けることができます。

次の例では、 dataset1, dataset2, dataset3 および v1 から databaseA.schema1 前の例で作成したコンテナ。

ALTER TABLE dataset1 ADD SCHEMA databaseA.schema1;

ALTER TABLE dataset2 ADD SCHEMA databaseA.schema1;

ALTER TABLE dataset3 ADD SCHEMA databaseA.schema1;

ALTER VIEW v1  ADD SCHEMA databaseA.schema1;

データコンテナからのデータアセットへのアクセス

データベース名を適切に絞り込むことで、 PostgreSQL クライアントは、 SHOW キーワードを使用して作成した任意のデータ構造に接続できます。 SHOW キーワードについて詳しくは、 SQL 構文ドキュメント内の「 SHOW 」セクション.

「all」は、サンドボックス内のすべてのデータベースとスキーマコンテナを含むデフォルトのデータベース名です。 を作成する際に、 PostgreSQL 接続を使用 dbname="all"に設定されている場合、 任意 データを論理的に整理するために作成したデータベースおよびスキーマ。

の下にすべてのデータベースをリストする dbname="all" は、3 つの使用可能なデータベースを表示します。

SHOW DATABASES;

name
---------
databaseA
databaseB
databaseC

の下にすべてのスキーマをリストする dbname="all" は、サンドボックス内の各データベースに関連する 3 つのスキーマを表示します。

SHOW SCHEMAS;

database       | schema
----------------------
databaseA      | schema1
databaseA      | schema2
databaseB      | schema3

を作成する際に、 PostgreSQL 接続を使用 dbname="databaseA"を使用すると、次の例に示すように、特定のデータベースに関連付けられている任意のスキーマにアクセスできます。

SHOW DATABASES;

name
---------
databaseA


SHOW SCHEMAS;

database       | schema
----------------------
databaseA      | schema1
databaseA      | schema2

ドット表記を使用すると、選択したデータベースに接続された特定のスキーマに関連付けられたすべてのテーブルにアクセスできます。 に接続する DBNAME = databaseA.schema1;、その特定のスキーマに関連付けられたすべてのテーブル (schema1) が表示されます。 これは、どのテーブルが含まれるデータセットに関する情報を提供します。

SHOW DATABASES;

name
---------
databaseA


SHOW SCHEMAS;

database       | schema
----------------------
databaseA      | schema1


SHOW tables;
name       | type
----------------------
dataset1| table
dataset2| table
dataset3| table

データコンテナでのデータアセットの更新または削除

組織(またはサンドボックス)内のデータアセットの量が増えるにつれ、データコンテナのデータアセットを更新または削除する必要が生じます。 ドット表記を使用して適切なデータベースおよびスキーマ名を参照することで、個々のアセットを組織コンテナから削除できます。 テーブルとビュー (t1 および v1 ) を databaseA.schema1 最初の例では、次の例の構文を使用してが削除されます。

ALTER TABLE databaseA.schema2.t1 REMOVE SCHEMA databaseA.schema2;
ALTER VIEW databaseA.schema2.v1 REMOVE SCHEMA databaseA.schema2;

データアセットを削除する

The DROP TABLE 関数は、 Data Lake テーブルへの単一の参照が組織内のすべてのデータベースに存在する場合。

DROP TABLE databaseA.schema2.t1;

データアセットコンテナの削除

標準の SQL 関数を使用して、データベースとスキーマの両方を削除することもできます。

データベースの削除

データベースに関連付けられたデータアセットへの他の参照がある場合、この関数は、データベースを削除しようとするとエラーをスローします。

DROP DATABASE databaseA;

スキーマの削除

スキーマを削除する際に注意すべき重要な点は次の 3 つです。

  • スキーマを削除しても、テーブル、ビュー、一時テーブルなどのデータアセットは物理的に削除されません。
  • ターゲットスキーマ内で参照されるデータアセットがあり、モードが RESTRICT の場合、例外がスローされます。
  • ターゲットスキーマ内で参照されるデータアセットがあり、モードが CASCADE の場合、スキーマコンテナによって参照されるすべてのデータアセットが削除され、スキーマコンテナが削除されます。
DROP SCHEMA databaseA.schema2;

次の手順

このドキュメントでは、Adobe Experience Platformクエリサービスで使用するデータアセットの構成と構造に関するベストプラクティスについて、より深く理解できました。 クエリサービスのベストプラクティスについては、 データ重複排除ドキュメント.

recommendation-more-help
ccf2b369-4031-483f-af63-a93b5ae5e3fb