AnalyticDB for MySQLでは、CREATE EXTERNAL DATABASE
ステートメントを実行して外部データベースを作成できます。 このトピックでは、CREATE EXTERNAL DATABASE
ステートメントの構文、使用上の注意事項、および例について説明します。
前提条件
AnalyticDB for MySQL
Data Lakehouse Editionクラスターが作成されます。
Alibaba Cloudアカウント全体でObject Storage Service (OSS) 外部データベースを作成する前に、次の要件が満たされています。リソースアクセス管理 (RAM) ロールが作成され、AliyunOSSReadOnlyAccessポリシーがRAMロールにアタッチされています。 詳細については、「権限付与の実行」をご参照ください。
重要OSS外部データベースのOSS外部テーブルでINSERTなどのデータ更新操作を実行するには、AliyunOSSFullAccessポリシーをRAMロールにアタッチする必要があります。
使用上の注意
Sparkエンジンでは、
CREATE EXTERNAL DATABASE
ステートメントを実行して外部データベースを作成することはできません。 この操作を実行するには、XIHEエンジンを使用します。CREATE EXTERNAL DATABASEステートメントを実行して作成された外部データベースに外部テーブルを作成するには、
create external TABLE
ステートメントのみを使用できます。 詳細については、「EXTERNAL TABLEの作成」をご参照ください。Alibaba Cloudアカウント全体で外部データベースと外部テーブルを作成する場合、作成できるのはOSS外部データベースと外部テーブルのみです。 ApsaraDB RDS for MySQL外部テーブルやApsaraDB for MongoDB外部テーブルなど、他の種類の外部データベースや外部テーブルは作成できません。
構文
CREATE EXTERNAL DATABASE [IF NOT EXISTS] <db_name>
[WITH DBPROPERTIES(
catalog='OSS',
location = '<oss_location>',
cross_account_accessing_arn= '<ARN>')]
パラメーター
パラメーター | 必須 | 説明 |
db_name | 必須 | データベースの名前。 |
カタログ | 選択可能 説明 パラメーターは、Alibaba Cloudアカウント全体でOSS外部データベースを作成する場合にのみ必要です。 | データベースエンジン。 値をOSSに設定します。 重要 Alibaba Cloudアカウント全体で外部データベースを作成する場合、OSS外部データベースのみを作成できます。 |
場所 | OSSオブジェクトまたはディレクトリのパス。 重要 パスを指定すると、AnalyticDB for MySQLはこのパスのファイルにのみアクセスできます。
| |
cross_account_accessing_arn | RAMロールのAlibaba Cloudリソース名 (ARN) 。 RAMロールのARNを表示する方法については、「RAMロールに関する情報の表示」をご参照ください。 |
例
同じAlibaba Cloudアカウント内に外部データベースを作成します。
CREATE EXTERNAL DATABASE IF NOT EXISTS adb_demo;
Alibaba Cloudアカウント間で外部データベースを作成します。
CREATE EXTERNAL DATABASE IF NOT EXISTS adb_demo1 WITH DBPROPERTIES( catalog='OSS', location = 'oss://testBucketname/test/', cross_account_accessing_arn= 'acs:ram::16274839*****:role/username');