すべてのプロダクト
Search
ドキュメントセンター

AnalyticDB:CREATE EXTERNAL DATABASE

最終更新日:Nov 11, 2024

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はこのパスのファイルにのみアクセスできます。

testおよびpersonディレクトリがtestBucketnameバケットに存在すると仮定します。 OSSパスをoss:// testBucketname/test/ に設定した場合、testディレクトリ内のファイルにのみアクセスできます。 personディレクトリ内のファイルにはアクセスできません。

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');