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

AnalyticDB:メタデータ検出を使用してdata Lakehouse Editionにデータをインポートする

最終更新日:Jun 13, 2024

標準フォームやログファイルなど、エンタープライズサービスから生成されたデータファイルは、定期的にObject Storage Service (OSS) にアップロードされます。 ただし、OSSオブジェクトのメタデータ管理がありません。 その結果、OSSデータの計算と分析は困難です。 AnalyticDB for MySQLは、システムがOSSパスのマッピング、OSSオブジェクトのグループ化、OSSオブジェクトフィールドの探索、フィールドの変更の識別を自動的に行えるようにするメタデータ検出機能を提供します。 このようにして、データレイクメタデータは自動的に作成および更新されます。 OSSメタデータ検出ジョブを作成して、AnalyticDB for MySQL data Lakehouse Edition (V3.0) クラスターと同じリージョンにあるOSSバケットとデータオブジェクトを検出し、OSSからクラスターにデータをインポートできます。

前提条件

  • AnalyticDB for MySQL Data Lakehouse Edition (V3.0) クラスターは、Object Storage Service (OSS) バケットと同じリージョンに作成されます。

  • データファイルがOSSバケットにアップロードされます。 OSSパスは次の条件を満たしています。

    • OSSパスは、<BucketName>/directory/.../directory/table/objectまたは <BucketName>/directory/.../directory/table/partition/.../partition/object形式です。

    • OSSバケットには、少なくとも1つのレベルの子ディレクトリがあります。

    • OSSパス内の同じテーブルまたはパーティション内のオブジェクトは同じ形式です。

    • OSSパス内の同じテーブルまたはパーティション内のオブジェクトには、同じタイプと数のフィールドが含まれています。

制限事項

同じOSSパス内のクラスターごとに作成できるメタデータ検出ジョブは1つだけです。

手順

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

  2. 左側のナビゲーションウィンドウで、[データ取り込み] > メタデータの検出 を選択します。

  3. メタデータの検出 ページの [OSSデータソース] セクションで、ウィザードに入ります をクリックします。

  4. [OSSデータソース] タブで、次の表に示すパラメーターを設定します。

    セクション

    パラメーター

    説明

    データソース設定

    データウェアハウスモード

    自動メタデータ検出は、OSSベースの標準データウェアハウス用に構築されており、高い識別精度を提供します。

    説明

    フリーモードはサポートされていません。

    OSSディレクトリ

    オブジェクトが保存されているOSSディレクトリ。 ディレクトリはスラッシュ (/) で終わる必要があります。

    マッピング結果は、OSS Directoryパラメーターの値によって異なります。 詳細については、このトピックの「OSSパスからAnalyticDB For MySQLへのデータのマッピングの例」をご参照ください。

    重要

    OSS Directoryパラメーターを設定するときは、OSSディレクトリの後に少なくとも1つのレベルの子ディレクトリが存在することを確認してください。

    パスフィルタルール (オプション)

    AnalyticDB for MySQLにマップするオブジェクトをフィルタリングするためのルール。 オブジェクトのパスプレフィックスを1つ以上指定します。

    • 含める: OSSパスに保存されているすべてのオブジェクトは、AnalyticDB for MySQLにマップされます。

      重要

      複数のオブジェクトがOSSパスに保存されている場合、オブジェクトは同じ形式で、同じタイプと量のフィールドを含む必要があります。

    • Exclude: OSSパスに保存されているオブジェクトは、AnalyticDB for MySQLにマップされていません。

    形式パーサー

    オブジェクトからデータを読み取り、オブジェクト形式を決定する形式パーサー。 デフォルトでは、自動が選択されています。 この値は、すべての組み込みフォーマットパーサーが順番に呼び出されることを指定します。

    OSSパスに保存されているオブジェクトの形式を解析できる形式パーサーを選択できます。

    重要

    選択した形式パーサーがオブジェクト形式とは異なる形式を解析すると、マッピングは失敗します。

    設定オプション (オプション)

    高度なカスタム設定。 Format Parserパラメーターをcsvに設定すると、次のパラメーターを設定できます。

    • フィールド区切り文字: CSVオブジェクトの列区切り文字。

    • 参照識別子: 解析されたAnalyticDB for MySQLテーブルの参照識別子。

    • Table Header Mode: CSVテーブルのテーブルヘッダを識別するために使用されるメソッド。 テーブルヘッダーは列名として使用されます。

    • Allow Single Field: CSVオブジェクト内のデータの行に対して1つの列のみを許可するかどうかを指定します。 有効な値:

      • false

      • true

    • その他の設定: パラメーターを設定して、CSVオブジェクトの最初の行を列名として使用するかどうかを指定できます。 この設定が必要な場合は、テクニカルサポートにお問い合わせください。

    スケジューリング設定

    スケジューリング周波数

    オブジェクト列またはデータの変更を定期的に取得するためのメタデータ検出ジョブのスケジューリング頻度。

    OSSオブジェクトデータが変更された場合、AnalyticDB for MySQLに再マッピングされたテーブルデータは、[宛先メタデータ設定] セクションで指定されたルールに基づいて更新されます。

    宛先メタデータ設定

    スキーマ名

    スキーマの名前。マップされたAnalyticDB for MySQLデータベースの名前です。 デフォルトでは、メタデータ検出ジョブごとにスキーマが作成されます。

    データベースの名前を指定するときは、次の項目に注意してください。

    • データベース名は、AnalyticDB for MySQLクラスター内の既存のデータベースの名前と同じにすることはできません。

    • データベース名は、他のメタデータ検出ジョブの既存のデータベースの名前と同じにすることはできません。

    設定オプション (オプション)

    OSSオブジェクトフィールドが変更された場合、またはOSSオブジェクトが削除された場合に、AnalyticDB for MySQLに再マップされるテーブルデータを更新するためのルール。

    • オブジェクトフィールド変更ルール:

      • 列のみを追加: OSSオブジェクトに列を追加すると、その列は次のメタデータ検出ジョブのマップされたAnalyticDB for MySQLテーブルにも追加されます。

      • テーブルの更新を無視: OSSオブジェクトの列またはパーティションデータを変更した場合、パーティションの変更のみが、次のメタデータ検出ジョブでマッピングされたAnalyticDB for MySQLテーブルに同期されます。 追加または削除された列などのテーブルスキーマの変更は同期されません。

    • オブジェクト削除変更ルール: [更新の削除を無視] オプションのみがサポートされています。 OSSオブジェクトを削除した場合、マッピングされたAnalyticDB for MySQLテーブルは次のメタデータ検出ジョブに引き続き存在します。

    重要

    マッピングされたAnalyticDB for MySQLテーブルでDDLおよびDML操作を実行できます。

    • AnalyticDB for MySQLテーブルに列を追加しても、その列は次のメタデータ検出ジョブに引き続き存在します。

    • AnalyticDB for MySQLテーブルから列を削除しても、その列は次のメタデータ検出ジョブでAnalyticDB for MySQLテーブルにマップされます。

  5. 上記のパラメーターを設定した後、をクリックします。作成メタデータ検出ジョブを作成します。

    説明

    メタデータ検出ジョブを作成すると、指定されたスケジューリング頻度に基づいてジョブが自動的に実行されます。 すぐにデータを同期する場合は、[ジョブ] タブでジョブを見つけ、[操作] 列の [実行] をクリックします。

  6. ジョブの開始後、[ジョブ] タブでジョブを管理します。 ジョブのステータスを表示したり、ジョブの設定を変更したりできます。

    説明

    ジョブが完了したら、[ジョブ開発] > [SQL開発] を選択して、AnalyticDB for MySQLにマップされているデータベース、テーブル、およびパーティションを表示できます。

OSSパスからAnalyticDB for MySQLへのデータのマッピング例

OSSパスからAnalyticDB for MySQLへのデータのマッピング結果は、次の要素によって異なります。

  • OSSオブジェクトとそのパス。

  • メタデータ検出ジョブに指定されているOSS Directoryパラメーター。

システムは、OSSディレクトリの後の最初のディレクトリレベルの名前をテーブル名にマップし、OSSディレクトリの後の他のディレクトリレベルの名前をパーティション名にマップします。 次の表に、マッピングの例を示します。

OSSパス

OSSディレクトリ

マップされたAnalyticDB for MySQLテーブル

oss:// adb/Table1/file1.csv

oss:// adb/Table1/file2.json

oss:// adb /

データマッピングは行われない。

原因: Table1ディレクトリに格納されているオブジェクトは、CSVとJSONの異なる形式です。

重要

オブジェクトが同じ形式であるが、フィールドが異なるデータ型を使用する場合、データマッピングは実行されません。

oss:// adb/Table2 /年 /月 /日 /file3.json

oss:// adb/Table2 /年 /月 /日 /file4.json

oss:// adb /

マップされたAnalyticDB for MySQLテーブルは、Table2という名前のパーティションテーブルです。 パーティションフィールドは、partition_0partition_1、およびpartition_2です。

説明

パーティションにはパーティションキーが存在しません。 この場合、partition_numが使用されます。

oss:// adb/Table2 /

マップされたAnalyticDB for MySQLテーブルは、yearという名前のパーティションテーブルです。 パーティションフィールドはpartition_0partition_1です。

oss:// adb/Table2 /年 /月 /

マップされたAnalyticDB for MySQLテーブルは、dayという名前の非パーティションテーブルです。

oss:// adb/Table2 /年 /月 /日 /

データマッピングは行われない。

原因: 指定されたOSSディレクトリの後にディレクトリレベルが存在しません。

oss:// adb/Table3/year=2022/month=03/day=01/file5.csv

oss:// adb/Table3/year=2022/month=03/day=01/file6.csv

oss:// adb /

マップされたAnalyticDB for MySQLテーブルは、Table3という名前のパーティションテーブルです。 パーティションフィールドは、yearmonthdayです。

  • oss:// adb/Table3 /

  • oss:// adb/Table3 /年=2022 /

データマッピングは行われない。

原因: year=2022またはmonth=03ディレクトリが、AnalyticDB for MySQLテーブルの命名規則に準拠していません。 詳細については、「制限」をご参照ください。

oss:// adb/Table4/2020/03/30/file7.csv

oss:// adb/Table3/2020/03/30/file8.csv

oss:// adb /

マップされたAnalyticDB for MySQLテーブルは、Table4という名前のパーティションテーブルです。 パーティションフィールドは、partition_0partition_1、およびpartition_2です。

説明

パーティションにはパーティションキーが存在しません。 この場合、partition_numが使用されます。

  • oss:// adb/Table3 /

  • oss:// adb/Table3/2020 /

データマッピングは行われない。

原因: 2020または03ディレクトリが、AnalyticDB for MySQLテーブルの命名規則に準拠していません。 詳細については、「制限」をご参照ください。