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

AnalyticDB:Data Warehouse Edition を使用した作業の開始

最終更新日:Mar 04, 2025

このトピックでは、AnalyticDB for MySQL Data Warehouse Edition を使用して作業を開始する方法について説明します。 AnalyticDB for MySQL は、ペタバイト規模の高並列データを実時間で処理できるオンライン分析処理 (OLAP) ウェアハウスサービスです。このトピックでは、AnalyticDB for MySQL Data Warehouse Edition クラスタを使用する手順について説明します。

重要

Data Warehouse Edition は購入できません。Enterprise Edition または Basic Edition クラスタを購入できます。既存の Data Warehouse Edition クラスタの使用方法については、このトピックを参照してください。

使用プロセス

AnalyticDB for MySQL Data Warehouse Edition を初めて使用する場合は、以下のトピックを読むことをお勧めします。

  • 製品紹介: AnalyticDB for MySQL の用語、メリット、およびシナリオについて説明します。

  • 料金: AnalyticDB for MySQL の料金と課金方法について説明します。

  • 作業の開始 (このトピック): AnalyticDB for MySQL Data Warehouse Edition クラスタの使用方法について説明します。

次の図は、AnalyticDB for MySQL Data Warehouse Edition を使用するプロセスを示しています。

ステップ 1: データベースアカウントを作成する

AnalyticDB for MySQL は、2 種類のデータベースアカウント、特権アカウントと標準アカウントをサポートしています。特権アカウントと標準アカウントの違いについては、「データベースアカウントを作成する」トピックの「アカウントタイプ」セクションを参照してください。

特権アカウントを作成する

  1. AnalyticDB for MySQL コンソール にログインします。コンソールの左上隅で、リージョンを選択します。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。 クラスターリスト ページで、エディションタブをクリックします。管理するクラスタを見つけて、クラスタ ID をクリックします。

  2. 左側のナビゲーションウィンドウで、アカウント管理 をクリックします。

  3. アカウント管理 タブで、[特権アカウントの作成] をクリックします。

  4. アカウントの作成 パネルで、次の表に示すパラメータを設定します。

    パラメータ

    説明

    データベースアカウント

    特権アカウントの名前。画面上の要件を満たす名前を入力します。

    アカウントタイプ

    アカウントタイプ。 Data Warehouse Edition クラスタの場合、このパラメータは自動的に 高特権アカウント に設定されます。

    新しいパスワード

    特権アカウントのパスワード。画面上の要件を満たすパスワードを入力します。

    パスワードの確認

    特権アカウントのパスワードをもう一度入力します。

    記述

    オプション。今後の管理のためにアカウントを識別するために使用される説明。

  5. を決定 をクリックします。

標準アカウントを作成して権限を付与する

SQL 文を実行して作成された標準アカウントは、コンソールに表示されません。

  • データベースアカウントの作成方法については、「CREATE USER」を参照してください。

  • データベースアカウントに権限を付与する方法については、「GRANT」を参照してください。

  • データベースアカウントから権限を取り消す方法については、「REVOKE」を参照してください。

  • データベースアカウントの名前を変更する方法については、「RENAME USER」を参照してください。

  • データベースアカウントを削除する方法については、「DROP USER」を参照してください。

ステップ 2: IP アドレスホワイトリストを設定する

  • AnalyticDB for MySQL クラスタのデフォルトの IP アドレスホワイトリストには、デフォルトの IP アドレス 127.0.0.1 のみ含まれています。これは、どのデバイスもクラスタにアクセスできないことを示しています。クラスタへの他のデバイスのアクセスを許可するには、IP アドレスホワイトリストを設定できます。たとえば、10.10.10.0/24 を指定すると、10.10.10.x のすべての IP アドレスがクラスタにアクセスできるようになります。複数の IP アドレスまたは CIDR ブロックを追加する場合は、複数のエントリをコンマ (,) で区切ります。コンマの前後にスペースを追加しないでください。例: 192.168.0.1,172.16.213.9。

    警告

    IP アドレス 0.0.0.0 はホワイトリストでは許可されていません。

  • パブリック IP アドレスが頻繁に変更され、すべてのパブリック IP アドレスが AnalyticDB for MySQL クラスタにアクセスできるようにする場合は、テクニカルサポートにお問い合わせください。

  • AnalyticDB for MySQL クラスタに対してきめ細かいアクセス制御を有効にするには、IP アドレスホワイトリストを設定できます。ホワイトリストは定期的に更新することをお勧めします。

  • ホワイトリストの設定は、AnalyticDB for MySQL クラスタの実行には影響しません。IP アドレスホワイトリストの変更は 1 分で有効になります。

手順

  1. AnalyticDB for MySQL コンソール にログインします。コンソールの左上隅で、リージョンを選択します。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。 クラスターリスト ページで、エディションタブをクリックします。管理するクラスタを見つけて、クラスタ ID をクリックします。

  2. 左側のナビゲーションウィンドウで、データセキュリティ をクリックします。

  3. ホワイトリストの設定 タブで、変更デフォルト ホワイトリストの右側にある をクリックします。

    説明

    ホワイトリスト作成グループ をクリックして、IP アドレスホワイトリストを作成することもできます。

  4. ホワイトリストグループの設定 パネルで、デフォルトの IP アドレス 127.0.0.1 を削除し、許可する IP アドレスまたは CIDR ブロックを入力します。次に、を決定 をクリックします。

    説明

    クライアントのエグレス IP アドレスを IP アドレスホワイトリストに追加するには、最初に IP アドレスをクエリします。詳細については、「接続」を参照してください。

ステップ 3: AnalyticDB for MySQL クラスタに接続する

Data Management (DMS)、ビジネスインテリジェンス (BI) 可視化ツール、MySQL コマンドラインツール、または Navicat for MySQL、DBeaver、DbVisualizer、SQL Workbench/J などの MySQL クライアントを使用して、AnalyticDB for MySQL クラスタに接続できます。AnalyticDB for MySQL また、AnalyticDB for MySQL クラスタのエンドポイント、ポート、データベースアカウントなどの情報をアプリケーションに入力して、クラスタに接続することもできます。

DMS を使用して AnalyticDB for MySQL に接続するAnalyticDB for MySQL

  1. AnalyticDB for MySQL コンソール にログインします。コンソールの左上隅で、リージョンを選択します。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。 クラスターリスト ページで、エディションタブをクリックします。管理するクラスタを見つけて、クラスタ ID をクリックします。

  2. クラスター情報 ページの右上隅にある ログインデータベース をクリックします。

  3. 表示されるダイアログボックスで、次の表に示すパラメータを設定します。

    パラメータ

    説明

    [データベースタイプ]

    クラスタのデータベースタイプ。デフォルトでは、[analyticdb Mysql 3.0] が表示されます。

    [インスタンスリージョン]

    クラスタのリージョン。デフォルトでは、クラスタが存在するリージョンが表示されます。

    説明

    AnalyticDB for MySQL

    [インスタンス ID]

    クラスタ ID。デフォルトでは、現在のクラスタの ID が表示されます。

    説明

    AnalyticDB for MySQL

    [データベースアカウント]

    クラスタへの接続に使用するデータベースアカウントの名前。

    [データベースパスワード]

    クラスタへのログインに使用するデータベースアカウントのパスワード。

    説明

    [パスワードを記憶する] を選択できます。これにより、次回現在のAnalyticDB for MySQL クラスタに接続するときに、データベースアカウントの名前とパスワードを入力する必要はありません。

    説明
    • DMS を使用して AnalyticDB for MySQL クラスタに初めて接続すると、クラスタ内のデータは [柔軟な管理] モードで管理されます。クラスタを編集することで、制御モードを変更できます。詳細については、「データベースインスタンスの変更」および「制御モード」を参照してください。

    • パラメータを設定した後、ダイアログボックスの左下隅にある [接続テスト] をクリックできます。接続に失敗した場合は、手順に従って、[データベースアカウント] や [データベースパスワード] パラメータなど、入力した情報を確認してください。

    • DMS サーバーの IP アドレスまたは CIDR ブロックは、クラスタの IP アドレスホワイトリストに自動的に追加されます。IP アドレスまたは CIDR ブロックが追加に失敗した場合は、手動で IP アドレスまたは CIDR ブロックを追加する必要があります。詳細については、このトピックの「ステップ 2: IP アドレスホワイトリストを設定する」セクションと、「DMS の IP アドレスと CIDR ブロックをセキュリティ設定に追加する」を参照してください。

  4. [ログイン] をクリックします。

アプリケーション開発中にコードを使用して AnalyticDB for MySQL に接続する

MySQL コマンドラインツールを使用して AnalyticDB for MySQL に接続する

MySQL コマンドラインクライアントを使用して AnalyticDB for MySQL に接続する

クライアントを使用して AnalyticDB for MySQL に接続する

データ可視化ツールを使用して AnalyticDB for MySQL に接続する

ステップ 4: データベースを作成する

説明

AnalyticDB for MySQL クラスタごとに最大 2,048 個のデータベースを作成できます。

  1. [INFORMATION_SCHEMA] システムデータベースを選択し、[SQL コンソール] タブで CREATE DATABASE を入力します。

    SQL Console

    • 構文: CREATE DATABASE [IF NOT EXISTS] $db_name

    • パラメータの説明: db_name パラメータは、作成するデータベースの名前を指定します。名前は最大 64 文字で、文字、数字、アンダースコア (_) を使用できます。名前は小文字で始まり、連続したアンダースコア (_) を含めることはできません。

      説明

      データベース名として analyticdb を使用しないでください。 analyticdb という名前は組み込みデータベース用に予約されています。

    • 例:

      create database adb_demo;                          
      create database if not exists adb_demo2;                         
  2. [SQL コンソール] タブの左上隅にある [実行] をクリックします。データベースが作成されます。

    数据库创建成功

ステップ 5: データのインポートとクエリ

前提条件

  • Object Storage Service (OSS) バケットにディレクトリを作成して、AnalyticDB for MySQL クラスターからインポートされたデータを格納するには、次の操作を実行します。

    1. OSS をアクティブ化します。詳細については、「OSS をアクティブ化する」をご参照ください。

    2. OSS バケットを作成します。詳細については、「バケットを作成する」をご参照ください。

      重要

      OSS バケットが AnalyticDB for MySQL クラスターと同じリージョンにあることを確認してください。

    3. ディレクトリを作成します。詳細については、「ディレクトリを管理する」トピックの「ディレクトリを作成する」セクションをご参照ください。

    4. オブジェクトをアップロードします。詳細については、「オブジェクトをアップロードする」をご参照ください。

      この例では、oss_import_test_data.txt オブジェクトが OSS の <bucket-name>.oss-cn-hangzhou.aliyuncs.com/adb/ ディレクトリにアップロードされます。行区切り文字は改行、列区切り文字はセミコロン(;)です。次のコードは、このオブジェクトに含まれるデータの一部を示しています。

      uid;other
      12;hello_world_1
      27;hello_world_2
      28;hello_world_3
      33;hello_world_4
      37;hello_world_5
      40;hello_world_6
      ...     
  • AnalyticDB for MySQL クラスターが作成されます。クラスターには IP アドレスのホワイトリストが構成されています。クラスターのデータベースアカウントとデータベースが作成されます。詳細については、「Data Warehouse Edition を使い始める手順」をご参照ください。

手順

  1. CREATE TABLE 文を実行して、adb_demo データベースに外部テーブルを作成します。CSV、Parquet、または TEXT 形式のオブジェクトの OSS 外部テーブルを作成する方法については、このトピックの「OSS 外部テーブルを作成するための構文」セクションを参照してください。

  2. OSS データをクエリします。

    外部テーブルのデータを、AnalyticDB for MySQL の内部テーブルのデータにクエリを実行する場合と同じ方法でクエリを実行できます。例:

    select uid, other from oss_import_test_external_table where uid < 100 limit 10;
    • オブジェクトが CSV または TEXT フォーマットで、大量のデータが含まれている場合は、データをクエリする前に、AnalyticDB for MySQL にインポートすることをお勧めします。そうしないと、クエリのパフォーマンスが低下する可能性があります。

    • オブジェクトが Parquet フォーマットの場合、データを直接クエリするか、データをクエリする前にオブジェクトを AnalyticDB for MySQL にインポートするかを決定できます。

  3. CREATE TABLE 文を実行して、adb_oss_import_test という名前のデスティネーションテーブルを adb_demo データベースに作成し、OSS からインポートされたデータを格納します。

    CREATE TABLE IF NOT EXISTS adb_oss_import_test
    (
        uid string,
        other string
    )
    DISTRIBUTED BY HASH(uid);                  
  4. INSERT 文を実行して、OSS 外部テーブルから AnalyticDB for MySQL にデータをインポートします。

    重要

    デフォルトでは、INSERT INTO 文と INSERT OVERWRITE SELECT 文はデータを同期的にインポートします。数百ギガバイトのデータをインポートする場合、クライアントは AnalyticDB for MySQL サーバーとの接続を長時間にわたって維持する必要があります。このプロセス中に、ネットワークの切断が原因でインポートが失敗する可能性があります。そのため、大量のデータをインポートする場合は、SUBMIT JOB INSERT OVERWRITE SELECT 文を実行してデータを非同期的にインポートすることをお勧めします。

    • 方法 1:INSERT INTO 文を実行してデータをインポートします。プライマリキーに重複する値がある場合、データは繰り返し挿入されず、INSERT INTO 文は INSERT IGNORE INTO 文と同じです。詳細については、「INSERT INTO」をご参照ください。

      INSERT INTO adb_oss_import_test
      SELECT * FROM oss_import_test_external_table;
    • 方法 2:INSERT OVERWRITE 文を実行してデータをインポートします。プライマリキーに重複する値がある場合、元の値は新しい値で上書きされます。

      INSERT OVERWRITE adb_oss_import_test
      SELECT * FROM oss_import_test_external_table;
    • 方法 3:INSERT OVERWRITE 文を実行して、データを非同期にインポートします。ほとんどの場合、SUBMIT JOB 文を使用して非同期ジョブを送信します。データインポート文の前にヒント(/*+ direct_batch_load=true*/)を追加して、ジョブを高速化できます。詳細については、「INSERT OVERWRITE SELECT」トピックの「非同期書き込み」セクションをご参照ください。

      SUBMIT JOB INSERT OVERWRITE adb_oss_import_test
      SELECT * FROM oss_import_test_external_table;

      結果例:

      +---------------------------------------+
      | job_id                                |
      +---------------------------------------+
      | 2020112122202917203100908203303****** |

      非同期ジョブの送信方法については、「インポートジョブを非同期で送信する」をご参照ください。

  5. 次の文を実行して、adb_oss_import_test テーブルのデータをクエリします。

    SELECT * FROM adb_oss_import_test;

前提条件

パーティション化されていない OSS 外部テーブル

CREATE TABLE [IF NOT EXISTS] table_name
(column_name column_type[, ...])
ENGINE='OSS'
TABLE_PROPERTIES='{
    "endpoint":"endpoint",
    "url":"OSS_LOCATION",
    "accessid":"accesskey_id",
    "accesskey":"accesskey_secret",
    "format":"txt|orc|parquet",
    "delimiter":";",
    "skip_header_line_count":1,
    "charset":"utf-8"
}';

テーブル形式

パラメーター

必須

説明

CSV、Parquet、または ORC

ENGINE='OSS'

はい

テーブルエンジン。値を OSS に設定します。

endpoint

OSS バケットの [エンドポイント]AnalyticDB for MySQL は、VPC(仮想プライベートクラウド)を使用してのみ OSS にアクセスできます。

説明

OSS コンソール にログインし、バケットを見つけて、[概要] ページで [エンドポイント] を取得できます。

url

OSS オブジェクトまたはディレクトリのパス。有効な値:

  • OSS オブジェクトの絶対パス。例:oss://testBucketname/adb/oss_import_test_data.csv

  • スラッシュ (/) で終わる OSS ディレクトリのパス。例:oss://testBucketname/adb/

    説明

    このパラメーターを OSS ディレクトリのパスに設定すると、作成された外部テーブルには、ディレクトリ内のすべてのデータが含まれます。

  • アスタリスク (*) ワイルドカードで終わるパス。これは、指定されたパターンに一致するすべてのオブジェクトとディレクトリに一致します。例:oss://testBucketname/adb/list_file_with_prefix/test*

    説明

    上記のサンプルパスは、oss://testBucketname/adb/list_file_with_prefix/testfile1 など、指定されたプレフィックス条件を満たすすべてのオブジェクトとディレクトリに一致します。

    oss://testBucketname/adb/list_file_with_prefix/test1/file2

accessid

OSS に対する権限を持つ Alibaba Cloud アカウントまたは Resource Access Management (RAM) ユーザーの AccessKey ID。

AccessKey ID の取得方法については、「アカウントと権限」をご参照ください。

accesskey

OSS に対する権限を持つ Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey シークレット。

AccessKey シークレットの取得方法については、「アカウントと権限」をご参照ください。

CSV

delimiter

CSV オブジェクトの列区切り文字。

Parquet または ORC

format

OSS オブジェクトの形式。

  • Parquet 形式で外部テーブルを作成する場合は、このパラメーターを parquet に設定する必要があります。

  • ORC 形式で外部テーブルを作成する場合は、このパラメーターを orc に設定する必要があります。

説明
  • このパラメーターは、Parquet または ORC 形式で OSS 外部テーブルを作成する場合にのみ指定する必要があります。

  • format パラメーターを空のままにすると、CSV 形式が使用されます。

CSV

null_value

いいえ

CSV オブジェクトの NULL 値。デフォルトでは、空の文字列が NULL として定義されます。これは、"null_value": "" です。

重要

このパラメーターは、V3.1.4.2 以降の AnalyticDB for MySQL クラスターでのみサポートされています。

ossnull

CSV オブジェクトの NULL 値を定義するためのルール。有効な値:

  • 1 (デフォルト): EMPTY_SEPARATORS。空の文字列のみが NULL として定義されます。

    たとえば、a,"",,c は、このルールに基づいて "a","",NULL,"c" と解釈されます。

  • 2: EMPTY_QUOTES。引用符 ("") のみ NULL として定義されます。

    たとえば、a,"",,c は、このルールに基づいて "a",NULL,"","c" と解釈されます。

  • 3: BOTH。空の文字列と引用符 ("") の両方が NULL として定義されます。

    たとえば、a,"",,c は、このルールに基づいて "a",NULL,NULL,"c" と解釈されます。

  • 4: NEITHER。空の文字列と引用符 ("") は NULL として定義されません。

    たとえば、a,"",,c は、このルールに基づいて "a","","","c" と解釈されます。

説明

上記の例は、"null_value": "" という前提で提供されています。

skip_header_line_count

データをインポートするときにスキップするヘッダー行の数。CSV オブジェクトの最初の行はテーブルヘッダーです。このパラメーターを 1 に設定すると、データをインポートするときにオブジェクトの最初の行がスキップされます。

このパラメーターのデフォルト値は 0 で、行をスキップしないことを指定します。

oss_ignore_quote_and_escape

引用符 (") とエスケープ文字を無視するかどうかを指定します。このパラメーターのデフォルト値は false で、引用符 (") とエスケープ文字を無視しないことを指定します。

重要

このパラメーターは、V3.1.4.2 以降の AnalyticDB for MySQL クラスターでのみサポートされています。

charset

OSS 外部テーブルで使用される文字セット。有効な値:

  • utf-8 (デフォルト)

  • gbk

重要

このパラメーターは、V3.1.10.4 以降の AnalyticDB for MySQL クラスターでのみサポートされています。

説明
  • 外部テーブルを作成するための文で使用される列名は、Parquet または ORC ファイルの列名と同じである必要があります。列名は大文字と小文字が区別されません。文の列の順序は、Parquet または ORC ファイルの順序と同じである必要があります。

  • 外部テーブルを作成するときに、Parquet または ORC ファイルの特定の列のみを外部テーブルの列として選択できます。Parquet または ORC ファイルで選択されていない列はインポートされません。

  • 外部テーブルを作成するために使用される文に、Parquet または ORC ファイルにない列が含まれている場合、この列には NULL が返されます。

Parquet、ORC、および AnalyticDB for MySQL 間のデータ型マッピングAnalyticDB for MySQL
Parquet と AnalyticDB for MySQL 間のデータ型マッピングAnalyticDB for MySQL

Parquet の基本型

Parquet の論理型

AnalyticDB for MySQL のデータ型AnalyticDB for MySQL

BOOLEAN

N/A

BOOLEAN

INT32

INT_8

TINYINT

INT32

INT_16

SMALLINT

INT32

N/A

INT または INTEGER

INT64

N/A

BIGINT

FLOAT

N/A

FLOAT

DOUBLE

N/A

DOUBLE

  • FIXED_LEN_BYTE_ARRAY

  • BINARY

  • INT64

  • INT32

DECIMAL

DECIMAL

BINARY

UTF-8

  • VARCHAR

  • STRING

  • JSON (Parquet オブジェクトに JSON 型の列が含まれている場合に利用可能)

INT32

DATE

DATE

INT64

TIMESTAMP_MILLIS

TIMESTAMP または DATETIME

INT96

N/A

TIMESTAMP または DATETIME

重要

STRUCT 型の列を使用する Parquet 外部テーブルは作成できません。

ORC と AnalyticDB for MySQL 間のデータ型マッピングAnalyticDB for MySQL

ORC のデータ型

AnalyticDB for MySQL のデータ型AnalyticDB for MySQL

BOOLEAN

BOOLEAN

BYTE

TINYINT

SHORT

SMALLINT

INT

INT または INTEGER

LONG

BIGINT

DECIMAL

DECIMAL

FLOAT

FLOAT

DOUBLE

DOUBLE

  • BINARY

  • STRING

  • VARCHAR

  • VARCHAR

  • STRING

  • JSON (ORC オブジェクトに JSON 型の列が含まれている場合に利用可能)

TIMESTAMP

TIMESTAMP または DATETIME

DATE

DATE

重要

LISTSTRUCT、または UNION 型を使用する ORC 外部テーブルは作成できません。MAP 型を使用する ORC 外部テーブルは作成できますが、クエリすることはできません。

AnalyticDB for MySQL では、OSS 外部テーブルを使用して、Hive 内の TEXT ファイルのデータの読み取りと書き込みを CSV フォーマットで行うことができます。次の文を使用して、外部テーブルを作成できます。

CREATE TABLE adb_csv_hive_format_oss (
  a tinyint,
  b smallint,
  c int,
  d bigint,
  e boolean,
  f float,
  g double,
  h varchar,
  i varchar, -- binary
  j timestamp,
  k DECIMAL(10, 4),
  l varchar, -- char(10)
  m varchar, -- varchar(100)
  n date
) ENGINE = 'OSS' TABLE_PROPERTIES='{
    "format": "csv",
    "endpoint":"oss-cn-hangzhou-internal.aliyuncs.com",
    "accessid":"LTAIF****5FsE",
    "accesskey":"Ccw****iWjv",
    "url":"oss://testBucketname/adb_data/",
    "delimiter": "\\1",
    "null_value": "\\\\N",
    "oss_ignore_quote_and_escape": "true",
    "ossnull": 2
}';
説明

Hive の TEXT ファイルのデータを読み書きするために CSV 形式の OSS 外部テーブルを作成する場合は、次の点に注意してください。

  • Hive の TEXT ファイルのデフォルトの列区切り文字は \1 です。OSS 外部テーブルを使用して Hive の TEXT ファイルのデータを読み書きする場合は、delimiter パラメーターで \1 を \\1 にエスケープする必要があります。

  • デフォルトでは、Hive の TEXT ファイルの NULL 値は \N です。OSS 外部テーブルを使用して Hive の TEXT ファイルのデータを読み書きする場合は、null_value パラメーターで \N を \\\\N にエスケープする必要があります。

  • Hive の BINARYCHAR(N)、および VARCHAR(N) 型はすべて、AnalyticDB for MySQL の VARCHAR 型に対応します。AnalyticDB for MySQLBOOLEAN などの Hive の他の基本データ型は、AnalyticDB for MySQL のデータ型と同じです。AnalyticDB for MySQL

パーティション化された OSS 外部テーブル

パーティションを含む OSS データ用に階層ディレクトリが生成されます。例:

parquet_partition_classic/
├── p1=2020-01-01
│ ├── p2=4
│ │ ├── p3=SHANGHAI
│ │ │ ├── 000000_0
│           └── 000000_1
│       └── p3=SHENZHEN
│ │     └── 000000_0
│ └── p2=6
│     └── p3=SHENZHEN
│         └── 000000_0
├── p1=2020-01-02
│ └── p2=8
│     ├── p3=SHANGHAI
│     │ └── 000000_0
│     └── p3=SHENZHEN
│         └── 000000_0
└── p1=2020-01-03
    └── p2=6
        ├── p2=HANGZHOU
        └── p3=SHENZHEN
            └── 000000_0

上記の例では、p1 はレベル 1 パーティション、p2 はレベル 2 パーティション、p3 はレベル 3 パーティションを示します。パーティションごとにデータをクエリする場合は、OSS 外部テーブルを作成するために使用する文でパーティションキー列を指定する必要があります。次の文は、OSS 外部テーブルを作成し、外部テーブルでパーティションキー列を指定する方法を示しています。この例では、Parquet オブジェクトが使用されています。

CREATE TABLE [IF NOT EXISTS] table_name
(column_name column_type[, ...])
ENGINE='OSS'
TABLE_PROPERTIES='{
    "endpoint":"エンドポイント",
    "url":"OSS ロケーション",
    "accessid":"アクセスキー ID",
    "accesskey":"アクセスキー シークレット",
    "format":"parquet",
    "partition_column":"p1, p2, p3"
}';
説明
  • TABLE_PROPERTIES パラメーターの partition_column プロパティは、パーティションキー列(この例では p1、p2、p3)を指定します。partition_column プロパティで指定されたパーティションキー列は、サンプルデータのパーティションレベルに準拠している必要があります。

  • 文で列を定義する場合は、パーティションキー列(この例では p1、p2、p3)とそのデータ型を含める必要があります。パーティションキー列は、列定義の最後に配置する必要があります。

  • 文で定義されているパーティションキー列は、partition_column プロパティで指定されているパーティションキー列と同じ順序である必要があります。

  • パーティションキー列では、次のデータ型がサポートされています。BOOLEANTINYINTSMALLINTINTINTEGERBIGINTFLOATDOUBLEDECIMALVARCHARSTRINGDATETIMESTAMP

  • データをクエリする場合、パーティションキー列は他の列と同じ方法で表示および使用できます。

  • format パラメーターを空のままにすると、CSV フォーマットが使用されます。

  • その他のパラメーターについては、このトピックの「パーティション化されていない OSS 外部テーブル」セクションのパラメーター表をご参照ください。

参照資料

AnalyticDB for MySQL にデータをインポートする方法の詳細については、「サポートされているデータソース」をご参照ください。