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

AnalyticDB:Data Warehouse Edition クイックスタート

最終更新日:Mar 29, 2026
重要

Data Warehouse Edition は新規購入できません。新規クラスターは Enterprise Edition または Basic Edition として購入してください。すでに Data Warehouse Edition クラスターをお持ちの場合は、このガイドに従ってセットアップし、データのクエリを開始してください。

AnalyticDB for MySQL は、ペタバイト規模のデータをリアルタイムで処理するオンライン分析処理 (OLAP) サービスです。このガイドでは、新しく作成したクラスターから最初のクエリを実行するまでの 5 つのステップを説明します。

このガイドの終了時には、以下の操作が完了している状態になります。

  • データベースアカウントを作成し、パスワードを設定する

  • クライアント接続を許可するための IP アドレスホワイトリストを設定する

  • Data Management (DMS) または任意のクライアントを使用してクラスターに接続する

  • データベースを作成する

  • Object Storage Service (OSS) からデータをロードし、クエリを実行する

image

前提条件

作業を開始する前に、以下の項目を準備してください。

ステップ 5 のインポート例では、oss_import_test_data.txt という名前のファイルを <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
...

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

AnalyticDB for MySQL は、特権アカウント および 標準アカウント の 2 種類のアカウントをサポートしています。両者の比較については、「データベースアカウントの作成」の「アカウントの種類」セクションをご参照ください。

特権アカウントの作成

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

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

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

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

    パラメーター説明
    データベースアカウント特権アカウントの名前。画面上の要件を満たす必要があります。
    アカウントタイプData Warehouse Edition クラスターの場合、自動的に 特権アカウント に設定されます。
    新しいパスワードアカウントのパスワード。画面上の要件を満たす必要があります。
    パスワードの再入力パスワードを再度入力します。
    説明(省略可)アカウントを識別するためのメモ。
  5. OK をクリックします。

標準アカウントの作成

SQL ステートメントで作成された標準アカウントはコンソールに表示されません。以下の SQL コマンドを使用して管理してください。

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

デフォルトのホワイトリストには 127.0.0.1 のみが含まれており、すべての外部接続をブロックしています。ご利用のクライアントの IP アドレスまたは CIDR ブロックを追加してアクセスを許可してください。

警告

ホワイトリストには IP アドレス 0.0.0.0 を指定できません。

ホワイトリストを設定する前に、以下の点にご注意ください。

  • サブネット内のすべての IP を許可する場合は、CIDR 表記を使用します(例:10.10.10.0/24)。

  • 複数のエントリを追加する場合は、カンマで区切ってスペースを入れないでください(例:192.168.0.1,172.16.213.9)。

  • 変更は 1 分以内に有効になり、実行中のクラスターに影響を与えません。

  • グローバル IP が頻繁に変更され、すべてのグローバル IP を許可する必要がある場合は、テクニカルサポートにお問い合わせください。

ホワイトリストの設定

  1. AnalyticDB for MySQL コンソール で、クラスターの詳細ページに移動します。

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

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

    デフォルトのホワイトリストを編集せずに別のホワイトリストを作成する場合は、ホワイトリストの作成 をクリックします。
  4. ホワイトリストの編集 パネルで、127.0.0.1 を削除し、許可する IP アドレスまたは CIDR ブロックを入力して、OK をクリックします。

    ご利用のクライアントマシンの送信元 IP アドレスを確認するには、「接続数」をご参照ください。

ステップ 3:クラスターへの接続

以下のいずれかの方法で接続してください。

DMS の使用

  1. AnalyticDB for MySQL コンソール で、クラスターの詳細ページに移動します。

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

  3. ダイアログボックスで、接続情報を入力します。

    - DMS 経由で初めて接続する場合、クラスターは [柔軟な管理]インスタンスの編集 モードで管理されます。コントロールモードを変更するには、データベースインスタンスの変更をご参照ください。利用可能なコントロールモードについては、「コントロールモード」をご参照ください。 - ログインする前に、左下隅にある [接続テスト] をクリックして接続を検証してください。 - DMS は、そのサーバー IP をクラスターのホワイトリストに自動的に追加します。これに失敗した場合は、手動で追加してください。詳細については、「DMS の IP アドレスと CIDR ブロックをセキュリティ設定に追加する」をご参照ください。
    パラメーター説明
    データベースタイプデフォルトで AnalyticDB MySQL 3.0 に設定されます。
    インスタンスリージョンクラスターのリージョンにデフォルト設定されます。
    インスタンス ID現在のクラスター ID にデフォルト設定されます。
    データベースアカウントデータベースアカウントの名前。
    データベースパスワードアカウントのパスワード。パスワードを保存 を選択すると、次回以降の認証情報入力を省略できます。
  4. ログイン をクリックします。

クライアントまたはツールの使用

MySQL クライアント:

ビジネスインテリジェンス (BI) ツール:

アプリケーションコード:

ステップ 4:データベースの作成

各クラスターは最大 2,048 個のデータベースをサポートします。

  1. DMS で、INFORMATION_SCHEMA システムデータベースを選択し、SQL コンソール タブを開きます。

    SQL Console

  2. 以下の文を実行してデータベースを作成します。

    • 64 文字以内

    • 英字、数字、アンダースコア (_) のみを含む

    • 小文字で始まる

    • 連続するアンダースコアを含まない

    analyticdb をデータベース名として使用しないでください。これは組み込みデータベース用に予約されています。
    CREATE DATABASE [IF NOT EXISTS] db_name;

    db_name の値は以下の条件を満たす必要があります。例:

    CREATE DATABASE adb_demo;
    CREATE DATABASE IF NOT EXISTS adb_demo2;
  3. SQL コンソール タブの左上隅で、実行 をクリックします。これでデータベースが作成されます。

    数据库创建成功

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

このステップでは、OSS から AnalyticDB for MySQL に外部テーブルを使用してデータをロードし、その後内部テーブルにコピーして効率的にクエリを実行する方法を説明します。

OSS からのデータインポート

  1. SQL コンソール で、adb_demo データベースを選択し、OSS 外部テーブルを作成します。

    CREATE TABLE oss_import_test_external_table
    (
        uid    STRING,
        other  STRING
    )
    ENGINE='OSS'
    TABLE_PROPERTIES='{
        "endpoint":  "oss-cn-hangzhou-internal.aliyuncs.com",
        "url":       "oss://<bucket-name>/adb/oss_import_test_data.txt",
        "accessid":  "<your-access-key-id>",
        "accesskey": "<your-access-key-secret>",
        "format":    "csv",
        "delimiter": ";"
    }';

    完全な構文とサポートされているすべてのパラメーターについては、「OSS 外部テーブルリファレンス」をご参照ください。

  2. 外部テーブルが正しく読み取れるかどうかをテストクエリで確認します。

    大量のデータを含む CSV および TEXT 形式のファイルについては、クエリを実行する前にデータを内部テーブルにインポートすることを推奨します。大規模な外部テーブルに対して直接クエリを実行すると、パフォーマンスが低下する可能性があります。Parquet 形式のファイルについては、直接クエリもサポートされています。
    SELECT uid, other
    FROM oss_import_test_external_table
    WHERE uid < 100
    LIMIT 10;

    このクエリにより、OSS ファイルの行が返されます。行が返されない場合は、エンドポイント、URL、認証情報が正しいかどうかを確認してください。

  3. 内部テーブル(送信先)を作成します。

    CREATE TABLE IF NOT EXISTS adb_oss_import_test
    (
        uid   STRING,
        other STRING
    )
    DISTRIBUTED BY HASH(uid);
  4. OSS のデータを内部テーブルにインポートします。データ量に応じて、以下のいずれかの方法を選択してください。方法 1 — 同期インポート(小規模データセット):重複するプライマリキーを無視する場合は、INSERT INTO を使用します(INSERT IGNORE INTO と同等)。

    重要

    INSERT INTO および INSERT OVERWRITE SELECT は同期的に実行されます。数百ギガバイト規模のデータセットでは、長時間実行中のインポート中にネットワークが切断されるとジョブが失敗します。その場合は代わりに方法 2 を使用してください。

    INSERT INTO adb_oss_import_test
    SELECT * FROM oss_import_test_external_table;

    重複するプライマリキーで既存の行を上書きする場合は、INSERT OVERWRITE を使用します。

    INSERT OVERWRITE adb_oss_import_test
    SELECT * FROM oss_import_test_external_table;

    方法 2 — 非同期インポート(大規模データセット、推奨):SUBMIT JOB を使用してバックグラウンドジョブとしてインポートを送信します。ヒント (/*+ direct_batch_load=true*/) を追加してロードを高速化できます。

    SUBMIT JOB INSERT OVERWRITE adb_oss_import_test
    SELECT * FROM oss_import_test_external_table;

    このコマンドはすぐにジョブ ID を返します。

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

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

  5. インポートが完了したら、内部テーブルをクエリしてデータを確認します。

    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://bucket-name/path/",
    "accessid":                   "your-access-key-id",
    "accesskey":                  "your-access-key-secret",
    "format":                     "text|orc|parquet",
    "delimiter":                  ";",
    "skip_header_line_count":     1,
    "charset":                    "utf-8"
}';

パラメーターのリファレンス:

パラメーター必須説明
ENGINE='OSS'はいOSS 外部テーブルではすべて OSS に設定します。
endpointはいOSS バケットの VPC エンドポイント。AnalyticDB for MySQL は VPC 経由で OSS にアクセスします。OSS コンソール のバケットの 概要
urlはいOSS オブジェクトまたはディレクトリへのパス。以下の 3 つの形式がサポートされています:オブジェクトの絶対パス (oss://bucket/path/file.csv)、末尾に / を付けたディレクトリパス (oss://bucket/path/)、末尾に * を付けたワイルドカードパターン (oss://bucket/path/prefix*)。url をディレクトリに設定すると、そのディレクトリ内のすべてのオブジェクトが含まれます。
accessidはいOSS の権限を持つ Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ID です。 詳細については、「アカウントと権限」をご参照ください。
accesskeyはい上記のアカウントまたは RAM ユーザーの AccessKey Secret。
formatParquet および ORC の場合Parquet ファイルの場合は parquet、ORC ファイルの場合は orc に設定します。省略した場合は CSV とみなされます。
delimiterCSV の場合列区切り文字。
null_valueいいえCSV ファイルで NULL を表す文字列。デフォルトは空文字列。クラスターバージョン V3.1.4.2 以降で使用可能。
ossnullいいえCSV ファイルの NULL 検出ルール。1(デフォルト):空文字列のみ。2:引用符付きの空文字列のみ。3:両方。4:どちらも該当しない。
skip_header_line_countいいえスキップするヘッダー行数。デフォルトは 0。最初の行をスキップするには 1 に設定します。
oss_ignore_quote_and_escapeいいえ引用符およびエスケープ文字を無視するかどうか。デフォルトは false。クラスターバージョン V3.1.4.2 以降で使用可能。
charsetいいえファイルの文字セット。utf-8(デフォルト)または gbk。クラスターバージョン V3.1.10.4 以降で使用可能。
Parquet または ORC ファイル用の外部テーブルを作成する場合:
CREATE TABLE 文の列名は、ファイル内の列名と一致している必要があります(大文字・小文字は区別されません)。
文の列順序は、ファイル内の列順序と一致している必要があります。
文に記述されていないファイル内の列は、テーブルから除外されます。
文に指定されている列のうち、ファイルに存在しないものは NULL を返します。

パーティションテーブル

Hive スタイルのディレクトリパーティションで構成された OSS データについては、クエリ時にパーティションプルーニングを有効にするために partition_column を指定します。

ディレクトリ構造の例:

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

CREATE 文:

CREATE TABLE [IF NOT EXISTS] table_name
(column_name column_type[, ...])
ENGINE='OSS'
TABLE_PROPERTIES='{
    "endpoint":         "endpoint",
    "url":              "oss://bucket-name/parquet_partition_classic/",
    "accessid":         "your-access-key-id",
    "accesskey":        "your-access-key-secret",
    "format":           "parquet",
    "partition_column": "p1, p2, p3"
}';

パーティションキー列のルール:

  • ディレクトリ階層と同じ順序でパーティションキー列 (partition_column) を列挙します。

  • パーティションキー列を列定義の末尾に配置します。

  • パーティションキー列でサポートされる型:BOOLEANTINYINTSMALLINTINTINTEGERBIGINTFLOATDOUBLEDECIMALVARCHARSTRINGDATETIMESTAMP

  • パーティションキー列は、他の列と同様にクエリおよび表示できます。

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

Parquet から AnalyticDB for MySQL:

Parquet 基本型Parquet 論理型AnalyticDB for MySQL 型
BOOLEANBOOLEAN
INT32INT_8TINYINT
INT32INT_16SMALLINT
INT32INT または INTEGER
INT64BIGINT
FLOATFLOAT
DOUBLEDOUBLE
FIXED_LEN_BYTE_ARRAY / BINARY / INT64 / INT32DECIMALDECIMAL
BINARYUTF-8VARCHAR / STRING / JSON
INT32DATEDATE
INT64TIMESTAMP_MILLISTIMESTAMP または DATETIME
INT96TIMESTAMP または DATETIME
重要

STRUCT 型の列を持つ Parquet 外部テーブルは作成できません。

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

ORC から AnalyticDB for MySQL:

ORC 型AnalyticDB for MySQL 型
BOOLEANBOOLEAN
BYTETINYINT
SHORTSMALLINT
INTINT または INTEGER
LONGBIGINT
DECIMALDECIMAL
FLOATFLOAT
DOUBLEDOUBLE
BINARY / STRING / VARCHARVARCHAR / STRING / JSON
TIMESTAMPTIMESTAMP または DATETIME
DATEDATE
重要

LISTSTRUCT、または UNION 型を持つ ORC 外部テーブルは作成できません。MAP 型を持つ ORC 外部テーブルは作成できますが、クエリは実行できません。

Hive TEXT ファイルの読み取り

Hive TEXT ファイルを CSV 外部テーブルで読み取るには、Hive のデフォルトデリミタをエスケープします。

  • Hive のデフォルト列区切り文字 \1delimiter\\1 としてエスケープ

  • Hive のデフォルト NULL 値 \Nnull_value\\\\N としてエスケープ

  • Hive の BINARYCHAR(N)、および VARCHAR(N) 型は、すべて AnalyticDB for MySQL の VARCHAR 型にマッピングされます

例:

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,  -- Hive では BINARY
    j TIMESTAMP,
    k DECIMAL(10, 4),
    l VARCHAR,  -- Hive では CHAR(10)
    m VARCHAR,  -- Hive では VARCHAR(100)
    n DATE
)
ENGINE='OSS'
TABLE_PROPERTIES='{
    "format":                       "csv",
    "endpoint":                     "oss-cn-hangzhou-internal.aliyuncs.com",
    "accessid":                     "LTAI****************",
    "accesskey":                    "<your-access-key-secret>",
    "url":                          "oss://testBucketname/adb_data/",
    "delimiter":                    "\\1",
    "null_value":                   "\\\\N",
    "oss_ignore_quote_and_escape":  "true",
    "ossnull":                      2
}';

次のステップ

  • Kafka、MySQL など、その他のデータインジェストオプションについては、「サポートされているデータソース」をご参照ください。

  • AnalyticDB for MySQL の基本概念やユースケースについて学ぶには、「製品概要」をご参照ください。

  • Data Warehouse Edition の課金詳細を確認するには、「料金」をご参照ください。