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

MaxCompute:DLF 1.0 と OSS を使用したデータレイクからの CSV データの読み取り

最終更新日:Dec 03, 2025

本トピックでは、Data Lake Formation (DLF) を設定して Object Storage Service (OSS) に保存されているデータからメタデータを抽出する方法について説明します。その後、MaxCompute の外部スキーマを使用して、データレイク内のデータに対してフェデレーテッドクエリを実行できます。このソリューションにより、データ分析と処理が簡素化され、データの信頼性とセキュリティが確保されます。

注意事項

  • 有効化済みのサービス

  • サポート対象リージョン

    リージョン名

    リージョン ID

    中国 (杭州)

    cn-hangzhou

    中国 (上海)

    cn-shanghai

    中国 (北京)

    cn-beijing

    中国 (張家口)

    cn-zhangjiakou

    中国 (深セン)

    cn-shenzhen

    中国 (香港)

    cn-hongkong

    シンガポール

    ap-southeast-1

    ドイツ (フランクフルト)

    eu-central-1

  • MaxCompute、OSS、DLF は同一リージョンにデプロイする必要があります

操作手順

ステップ 1:MaxCompute に DLF と OSS へのアクセス権限を付与

MaxCompute プロジェクトに関連付けられたアカウントには、DLF および OSS サービスへのアクセス権限が必要です。以下のいずれかの権限付与方法を使用できます:

  • ワンクリック権限付与:MaxCompute プロジェクトと DLF サービスの両方で同じアカウントを使用している場合、DLF への権限付与 をクリックします。

  • カスタム権限付与:異なるアカウントを使用している場合は、カスタム権限付与 方法を使用します。

ステップ 2:OSS データの準備

  1. OSS コンソールにログインし、バケットを作成します。この例では、バケット名は mc-lakehouse-dlf-oss です。詳細については、「バケットの作成」をご参照ください。

  2. この例では、パーティションテーブルを使用します。バケット内に mc_dlf_oss_pt/ という名前のルートフォルダを作成します。次に、ルートフォルダ内に 4 つのサブディレクトリを作成し、それぞれにファイルをアップロードします:

ステップ 3:DLF 1.0 を使用した OSS メタデータの抽出

  1. Data Lake Formation (DLF) コンソールにログインし、左上のコーナーでリージョンを選択します。

  2. 左側のナビゲーションウィンドウで、Metadata > Metadata を選択します。

  3. Metadata ページで、Database タブをクリックします。

    [default] Catalog List で、Create Database をクリックします。次のパラメーターを設定します:

    [メタデータ管理] ページで、[データベース] タブをクリックします。[default] データカタログで、[データベースの作成] をクリックします。次のパラメーターを設定します:

    パラメーター

    必須

    説明

    Catalog

    必須

    この例では、データカタログは [default] です。

    Database Name:

    必須

    カスタムのデータベース名を入力します。名前は英字で始まり、長さは 1~128 文字で、英字、数字、アンダースコア (_) のみを含めることができます。例:dlf_oss_csv

    Database Description:

    任意

    カスタムの説明を入力します。

    Select Path:

    必須

    データベースのストレージ場所。例:oss://mc-lakehouse-dlf-oss/metadb_save

  4. 左側のナビゲーションウィンドウで、Metadata > Metadata Discovery を選択します。

    1. Set Extraction Source

      パラメーター

      必須

      説明

      Extraction Task Name

      このパラメーターは必須です。

      抽出タスクのカスタム名を入力します。

      Select OSS Path

      必須

      DLF automatically creates tables and partitions based on the OSS directory that you specified. Directory structure: oss://Selected path/Table name (Optional)/Partition name (Optional)/File name. For example, the data.csv file is used to extract metadata. If this file is saved to the oss://my-bucket/my-path/my-table/dt=1/ directory and the oss://my-bucket/my-path/ directory is selected, DLF uses my_table as the table name, dt as a partition, and the data.csv file as the table schema. All directory names that include the table name can contain letters, digits, and underscores (_), and must start with a letter.

      Exclusion Mode

      任意

      Enter a regular expression to match the OSS directory that needs to be excluded

      Parse Format

      必須

      このサービスは、Automatic Recognition[json][csv][parquet][orc][hudi][delta][avro] など、複数のテーブルフォーマットを提供します。

    2. Set Extraction Target

      パラメーター

      必須

      説明

      Catalog

      必須

      ターゲット情報のデータカタログを選択します。

      Destination Database

      必須

      既存のデータベースを選択します。例:dlf_oss_csv

      Destination Table Prefix

      任意

      Enter the prefix of the destination table. It must be 1 to 128 characters in length, and can contain letters, digits, and underscores (_). It must start with a letter.

      Method to Handle Table Field Update

      必須

      • Add Columns and Retain Existing Columns

      • Update Table Schema and Generate Table Results Based on the last detected table schema (このオプションを選択すると、メタデータ抽出結果が同じ名前の既存のテーブルを上書きします。これにより、元のテーブルが失われたり、利用できなくなったりする可能性があります。)

      • Ignore Updates and Not Modify Table

      Method to Process Deleted OSS Objects

      必須

      • Delete Metadata

      • Ignore Updates and Not Delete Tables

    3. Set Extraction Task

      パラメーター

      必須

      説明

      RAM Role

      必須

      Data Lake Formation はこのロールを偽装してリソースにアクセスします。デフォルトのシステムロール AliyunDLFWorkFlowDefaultRole を選択できます。

      Execution Policy

      任意

      ジョブの実行ポリシー。

      • Manual

      • Scheduling

      Extraction Policy

      必須

      • Partial Data Extraction:各ファイルの一部のみをスキャンしてメタデータを抽出します。これによりジョブの実行時間は短縮されますが、完全な抽出よりも精度が低くなる可能性があります。メタデータを編集して情報を調整できます。

      • Extract All:すべてのデータファイルをスキャンしてメタデータを抽出します。大規模なデータセットでは時間がかかりますが、より正確な結果が得られます。

  5. 抽出されたテーブルの表示

    1. 左側のナビゲーションウィンドウで、Metadata > Metadata を選択します。

    2. Metadata ページで、Database タブをクリックします。

    3. この例では、抽出されたテーブルは mc_dlf_oss_pt です。

  6. 新しいパーティションにデータを追加した場合は、抽出タスクを再度実行する必要があります。

ステップ 4:DLF 1.0 と OSS の外部データソースの作成

  1. MaxCompute コンソールにログインし、左上のコーナーでリージョンを選択します。

  2. 左側のナビゲーションウィンドウで、構成の管理 > 外部データソース を選択します。

  3. 外部データソース ページで、外部データソースの作成 をクリックします。

  4. 外部データソースの追加 ダイアログボックスで、パラメーターを設定します。以下の表にパラメーターを説明します。

    パラメーター

    必須

    説明

    外部データソースタイプ

    必須

    [DLF+OSS] を選択します。

    外部データソース名

    必須

    カスタム名を入力します。命名規則は次のとおりです:

    • 名前は英字で始まり、小文字の英字、アンダースコア (_)、数字のみを含める必要があります。

    • 名前は 128 文字を超えることはできません。

    例:dlf_oss_csv_new

    外部データソースの説明

    任意

    必要に応じて説明を入力します。

    地理

    必須

    現在のリージョンがデフォルトで選択されます。

    DLF エンドポイント

    必須

    現在のリージョンの DLF エンドポイントがデフォルトで使用されます。

    OSS エンドポイント

    必須

    現在のリージョンの OSS エンドポイントがデフォルトで使用されます。

    [RoleARN]

    必須

    RAM ロールの Alibaba Cloud リソースネーム (ARN)。このロールには、DLF と OSS の両方のサービスにアクセスする権限が必要です。

    1. Resource Access Management (RAM) コンソールにログインします。

    2. 左側のナビゲーションウィンドウで、[ID] > [ロール] を選択します。

    3. [基本情報] セクションで、[ARN] を取得します。

    例:acs:ram::124****:role/aliyunodpsdefaultrole

    外部データソースの追加プロパティ

    任意

    外部データソースの追加属性を指定します。属性を指定した後、このデータソースを使用するタスクは、定義された動作に基づいてソースシステムにアクセスできます。

    説明

    サポートされているパラメーターについては、公式ドキュメントの今後の更新をご参照ください。プロダクトの進化に伴い、より多くのパラメーターが利用可能になります。

  5. [OK] をクリックして外部データソースを作成します。

  6. 外部データソース ページで、ターゲットのデータソースを見つけ、操作 列の 詳細 をクリックします。

ステップ 5:外部スキーマの作成

MaxCompute に接続し、次のコマンドを実行します:

SET odps.namespace.schema=true;

CREATE EXTERNAL SCHEMA IF NOT EXISTS <external_schema>
WITH <external_data_source>
ON '<dlf_data_catalogue>.dlf_database';

パラメーターは次のように説明されます:

  • external_schema外部スキーマのカスタム名。例:es_dlf_oss_csv

  • external_data_source:作成した外部データソースの名前。外部スキーマを含むプロジェクトは、外部データソースと同じリージョンにある必要があります。例:dlf_oss_csv

  • dlf_data_catalogueDLF データカタログ ID。詳細については、「データカタログの作成」をご参照ください。例:122****

  • dlf_database:指定された DLF データカタログ内のデータベース名。詳細については、「データベース、テーブル、および関数」をご参照ください。例:dlf_oss_csv

ステップ 6:SQL を使用した OSS データへのアクセス

  1. MaxCompute クライアントにログインし、外部スキーマ内のテーブルをクエリします。

SET odps.namespace.schema=true;
USE schema es_dlf_oss_csv;
SHOW tables IN es_dlf_oss_csv;

-- The following result is returned:
ALIYUN$xxx:mc_dlf_oss_pt

OK
  1. 外部スキーマ内の mc_dlf_oss_pt テーブルの詳細をクエリします。

SET odps.namespace.schema=true;
SELECT * FROM <project_name>.es_dlf_oss_csv.mc_dlf_oss_pt WHERE direction='NE';

-- The following result is returned:
+------------+------------+------------+------------+------------+------------+----------------+------------+
| _c0        | _c1        | _c2        | _c3        | _c4        | _c5        | _c6            | direction  | 
+------------+------------+------------+------------+------------+------------+----------------+------------+
| 1          | 2          | 13         | 1          | 46.81006   | -92.08174  | 9/14/2014 0:00 | NE         | 
| 1          | 3          | 48         | 1          | 46.81006   | -92.08174  | 9/14/2014 0:00 | NE         | 
| 1          | 9          | 4          | 1          | 46.81006   | -92.08174  | 9/15/2014 0:00 | NE         | 
+------------+------------+------------+------------+------------+------------+----------------+------------+

ステップ 8:フェデレーテッド外部テーブルからデータウェアハウスへのデータコピー

  1. フェデレーテッド外部テーブルからデータウェアハウスにデータをコピーします。

    CREATE TABLE vehicle_copy AS 
    SELECT * FROM <project_name>.es_dlf_oss_csv.mc_dlf_oss_pt 
    WHERE direction='NE';
  2. データウェアハウス内のテーブルからデータをクエリします。

    SELECT * FROM vehicle_copy;
    
    -- The following result is returned:
    +------------+------------+------------+------------+------------+------------+----------------+------------+
    | _c0        | _c1        | _c2        | _c3        | _c4        | _c5        | _c6            | direction  | 
    +------------+------------+------------+------------+------------+------------+----------------+------------+
    | 1          | 2          | 13         | 1          | 46.81006   | -92.08174  | 9/14/2014 0:00 | NE         | 
    | 1          | 3          | 48         | 1          | 46.81006   | -92.08174  | 9/14/2014 0:00 | NE         | 
    | 1          | 9          | 4          | 1          | 46.81006   | -92.08174  | 9/15/2014 0:00 | NE         | 
    +------------+------------+------------+------------+------------+------------+----------------+------------+