このトピックでは、異なるデータソースからのメタデータに対する操作中に新しいバージョンがいつ生成されるか、および異なるタイプのメタデータオブジェクトからどのような情報が取得されるかについて説明します。
メタデータのバージョン
概要
以下の情報を変更しても、新しいメタデータバージョンは生成されません。
パーティション定義の変更:パーティションの数、パーティションフィールドのタイプ、およびパーティションフィルター式の変更。
プロパティ定義の変更:カスタムプロパティの変更。
コレクションポリシーの構成:コレクションタスクが削除されたメタデータを保持するように構成されており、2つの連続したコレクションにフィールドの削除変更のみがある場合、新しいメタデータバージョンは生成されません。
以下の情報を変更すると、新しいメタデータバージョンが生成されます。
テーブル情報の変更:テーブルの説明とメタデータタイプの変更を含みます。
テーブル構造の変更:パーティションフィールドの変更、非パーティションテーブルからパーティションテーブルへの変更(パーティションテーブルであるかどうか)、およびビューDDLの変更を含みます。
フィールド構造の変更:フィールドの追加/更新/削除、フィールドの順序、フィールドのタイプ、およびフィールドキータイプの変更を含みます。
フィールド詳細の変更:フィールドのデフォルト値、NULL許容ステータス、およびフィールドの説明の変更を含みます。
さらに、一部のデータソースの特定のプロパティへの変更も、新しいバージョンが生成されるかどうかに影響します。以下の表に示します。
データソースの種類 | 変更方法 |
Hologres | パーティションテーブルタイプの変更 (親テーブルから子テーブルへの変換、またはその逆)、親テーブルの名前、子テーブルの条件など。 |
StarRocks | テーブルタイプ、マテリアライズドビューのリフレッシュタイプ、無効ステータス、ソートフィールド、バケット化メソッド、またはバケット化フィールドの変更。ただし、バケット数の変更では新しいバージョンは生成されません。 |
OceanBase、Greenplum | パーティションフィールドタイプの変更。 |
Amazon Redshift | テーブルのストレージタイプ、分散キーフィールド、ソートメソッド、またはソートフィールドの変更。 |
SelectDB、Doris | テーブルのストレージタイプ、バケット化メソッド、バケット化フィールド、ソートフィールド、または分散フィールドの変更。 |
Dameng (DM) | テーブルストレージクラスの変更。 |
DolphinDB | ソートフィールドの変更。 |
openGauss | テーブルのストレージタイプまたはパーティションフィールドの型の変更。 |
メタデータのプロパティ
以下の情報は、すべてのデータソースに表示されます。
テーブルの技術的プロパティ:説明、テーブル行数、ストレージクラス、およびストレージボリューム情報を含みます。
フィールドリスト:指定されたバージョンのフィールドの名前(プライマリキーフィールドはキー記号で識別されます)、データ型、説明、NULL許容ステータス、およびデフォルト値の情報を含みます。
パーティション情報: パーティションフィールドとパーティション詳細を含みます。パーティションフィールドについては、フィールド名、データの型、説明が提供されます。パーティション詳細については、パーティション名、レコード数、ストレージサイズ、作成時刻が提供されます。
データソースタイプがリレーショナルデータベースで、メタデータタイプがビューの場合、技術プロパティでは説明情報のみを表示できます。
Amazon Redshift はシステムテーブルを使用してデータを収集します。スーパー管理者は、デフォルトですべての行データ(すべてのメタデータ)にアクセスできます。通常のユーザーは自分のデータのみを表示できます。データソースにスーパー管理者アカウントを構成したくないが、それでもすべてのデータを収集したい場合は、pg_catalog に対する使用権限を特定のアカウントに付与できます。承認ステートメントは次のとおりです。
GRANT USAGE ON SCHEMA ${schema, such as pg_catalog} TO ${username}。Dameng (DM) および Oracle データソースで構成されたユーザーは、それらのテーブルからメタデータを収集するために、関連するテーブルに対する選択権限を持っている必要があります。ユーザーに権限を付与するには、次のステートメントを使用します。
grant SOI to your_username;。DolphinDB は関数を呼び出すことによって関連するメタデータを収集します。収集されるデータの範囲は、データソース構成で指定された DolphinDB のユーザーアカウントのロールによって異なります。
クラスター管理者: すべてのデータベースからテーブルを収集できます。
DB_OWNER、および特定のデータベースに対する DB_MANAGE または DB_READ 権限を持つアカウント: 対応するデータベースからすべてのテーブルを収集できます。
その他のアカウント: TABLE_READ 権限を持つテーブルを収集できます。
SelectDB および Doris データソースは、非同期マテリアライズドビューメタデータタイプを収集できます。これは、システムによってテーブルとして検出されます。同期マテリアライズドビューメタデータタイプは、現時点では収集できません。
次の表は、特定のデータソースに表示される情報の相違点を示しています。
データソースの種類 | テーブルの技術的プロパティ | フィールドリスト | パーティション情報 |
MySQL, Amazon RDS for MySQL, TDSQL for MySQL | ストレージクラスを収集できません。 | ビューフィールドのデフォルト値は、ソーステーブルフィールドのデフォルト値として表示されます。 |
|
Microsoft SQL Server、Amazon RDS for SQL Server | ストレージクラスを収集できません。 | / |
|
AnalyticDB for MySQL 3.0 | / | ビューフィールドのデフォルト値は、ソーステーブルフィールドのデフォルト値として表示されます。 |
|
OceanBase | テーブルがパーティション化されているかどうか、作成時刻、最終更新時刻 (MySQL テナントのみ)、および最終 DDL 更新時刻 (Oracle テナントのみ) に関する情報を収集します。収集される情報はテーブルタイプによって異なります。
| 通常のフィールドには、一意キー、外部キー、および CHECK 制約情報が表示されます。一意キーは UNI で識別されます(Oracleテナントの場合のみ表示)。外部キーは FOR で識別されます。CHECK 制約は CHK で識別されます(Oracleテナントの場合のみ表示)。 |
説明 OceanBase Oracle テナントモードのみがパーティション情報の表示をサポートしています。 |
PolarDB-X (旧 DRDS) | / | ビューフィールドのデフォルト値は、ソーステーブルフィールドのデフォルト値として表示されます。 |
|
IBM DB2、Amazon RDS for DB2 | / | デフォルト値の情報を収集できません。 |
|
ClickHouse | テーブルがパーティション化されているかどうか、テーブルエンジン、および最終 DDL 更新時刻に関する情報を収集します。収集される情報はテーブルタイプによって異なります。
| サンプリングキーとソートキーの情報を表示します。サンプリングキーは SMP で識別されます。ソートキーは SOR で識別されます。 |
|
Hive (MySQL メタデータベース, HMS メタデータ) | テーブルがパーティション化されているかどうか、レイクテーブルであるかどうか、レイクテーブルのフォーマット、テーブルのストレージモード、ストレージフォーマット、作成時刻、および最終 DDL 更新時刻に関する情報を収集します。収集される情報はテーブルタイプによって異なります。
| NULL許容ステータスとデフォルト値の情報を収集できません。 |
|
Hologres | テーブルがパーティション化されているかどうか、親テーブル名 (パーティション子テーブルのみ)、パーティション条件 (パーティション子テーブルのみ)、子テーブルの数 (パーティション親テーブルのみ)、ストレージフォーマット、作成時刻、最終更新時刻、最終 DDL 更新時刻、およびライフサイクルに関する情報を収集します。収集される情報はテーブルタイプによって異なります。
| / |
|
StarRocks | テーブルタイプ (内部テーブルのみ)、マテリアライズドビュータイプ (マテリアライズドビューのみ)、無効ステータス (マテリアライズドビューのみ)、テーブルがパーティション化されているかどうか、レイクテーブルであるかどうか、レイクテーブルのフォーマット、ストレージフォーマット、作成時刻、および最終更新時刻に関する情報を収集します。収集される情報はテーブルタイプによって異なります。
| バケットキーとソートキーの情報を表示します。 |
|
Greenplum | テーブルがパーティション化されているかどうか、および Location (外部テーブルのみ) に関する情報を収集します。収集される情報はテーブルタイプによって異なります。
| 通常のフィールドには、一意キー、外部キー、および CHECK 制約情報が表示されます。一意キーは UNI で識別されます(Oracleテナントの場合のみ表示)。外部キーは FOR で識別されます。CHECK 制約は CHK で識別されます(Oracleテナントの場合のみ表示)。 |
|
Amazon Redshift | テーブルがパーティション化されているかどうか、および Location (外部テーブルのみ) に関する情報を収集します。行数とストレージサイズは収集できません。収集される情報はテーブルタイプによって異なります。
| バケットキーとソートキーの情報を表示します。返されたすべてのソートキーの値が正の場合、通常のソートです。正と負の両方の値が返される場合、インターレースソートです。 | 外部テーブルのみがパーティション情報を表示します。
|
SelectDB、Doris | テーブルがパーティション化されているかどうか、レイクテーブルであるかどうか (ストレージフォーマットが Hudi または Iceberg の場合のみ)、レイクテーブルのフォーマット (レイクテーブルのみ)、ストレージフォーマット、テーブルタイプ、作成時刻、および最終データ更新時刻に関する情報を収集します。 異なるテーブルタイプで表示される情報の相違点は次のとおりです。
|
|
|
Dameng (DM) | テーブルがパーティション化されているかどうか、ストレージタイプ、ストレージフォーマット、Location (外部テーブルのみ)、作成時刻、および最終 DDL 更新時刻に関する情報を収集します。 異なるテーブルタイプで表示される情報の相違点は次のとおりです。
| 通常のフィールドには、一意キー、参照キー、および CHECK 制約情報が表示されます。一意キーは UNI で識別されます。参照キーは REF で識別されます。CHECK 制約は CHK で識別されます。 |
|
Elasticsearch | テーブル オブジェクト (インデックス) のみが、ドキュメント 数と ストレージ ボリューム情報の収集をサポートしています。 | テーブル オブジェクト (インデックス) のみが、フィールド名とデータ型情報の収集をサポートしています。 |
|
DolphinDB | テーブルがパーティション化されているかどうか、ストレージエンジン、ストレージフォーマット、および作成者に関する情報を収集します。ストレージタイプは収集できません。 |
|
|
openGauss | テーブルがパーティション化されているかどうか、ストレージフォーマット、Location (外部テーブルのみ)、およびビュー DDL (ビューおよびマテリアライズドビューのみ) に関する情報を収集します。 収集される情報はテーブルタイプによって異なります。
| 通常のフィールドには、プライマリキー、CHECK 制約、ユニークキー、およびトリガー情報が表示されます。CHECK 制約は CHK で識別されます。ユニークキーは UNI で識別されます。 |
|