MaxCompute は、ビッグデータエコシステムとの統合を改善し、外部エンジンが MaxCompute 内のデータにアクセスできるようにするために、ストレージ API を提供します。主流のサードパーティ製コンピュートエンジンは、ストレージ API を呼び出して MaxCompute の基盤ストレージに直接アクセスできます。これにより、データアクセスとインタラクションの効率が大幅に向上します。
オープンストレージの概要
ストレージ API は、効率的で低レイテンシー、かつ安全なデータアクセス方法を提供するデータサービスインターフェイスです。これにより、主流のサードパーティ製コンピュートエンジンが MaxCompute ストレージシステムにアクセスできるようになります。これにより、MaxCompute とオープンソースのコンピュートエンジンや機械学習エンジンとの間の統合とデータ処理効率が向上します。Spark、StarRocks、Presto、Flink などのコンピュートエンジンは、コネクタを使用して MaxCompute に保存されているデータに直接アクセスできます。これにより、データ利用プロセスが簡素化され、データアクセス性能が向上します。以下の図にアーキテクチャを示します。

利用シーン
ストレージ API は、データのアクセシビリティとマルチエンジンコンピューティングが求められるシナリオに適しています。企業や開発者がコンピューティングフレームワークを柔軟に切り替えたり、特定のエンジンの機能を使用して MaxCompute 内のデータを処理したりする必要がある場合、ストレージ API はデータ交換を促進し、多様なデータ処理を可能にするブリッジとして機能します。
主な特徴
高スループット:ストレージ API は、効率的なカラムナデータ読み取り、転送前のデータフィルタリングのための述語プッシュダウン、および Arrow データ形式をサポートします。
安全で使いやすい:テーブルセマンティクスを持つ基盤ストレージへの直接の読み取りアクセスを提供します。これにより、プロジェクトの隔離、アクセス制御、データ暗号化などのセキュリティポリシーを遵守しながら、ストレージの複雑さを抽象化します。
エコシステム統合:EMR 上の Spark および StarRocks は、コネクタを使用して MaxCompute 内のデータに直接アクセスできます。これにより、コンピュートエンジンの統合が簡素化されます。
範囲
MaxCompute にアクセスするサードパーティ製エンジンは、標準テーブル、パーティションテーブル、クラスター化テーブル、Delta テーブル、マテリアライズドビューを読み取ることができます。ただし、MaxCompute の外部テーブルや論理ビューは読み取れません。
JSON 型のデータの読み取りはサポートされていません。
従量課金制のストレージ API の場合、同時リクエスト数はテナントあたり 1,000 に制限され、転送レートは同時リクエストあたり 10 MB/s に制限されます。
データ転送リソース
サードパーティ製エンジンがデータ転送タスクに MaxCompute ストレージ API を使用する場合、Data Transmission Service (DTS) の専用リソースグループ (サブスクリプション) リソースのいずれかを使用できます。以下の表で、これらのリソースについて説明します。
リソースグループ名 | 課金に関する説明 | サポート対象リージョン | 利用手順 |
このリソースグループは、サブスクリプションの課金方法に基づいています。購入した同時インスタンスの数に基づいて課金されます。 |
|
リソース観察 ページでは、Data Transmission Service (DTS) の専用リソースグループ (サブスクリプション)の使用状況の詳細を確認できます。詳細については、「リソース観察」をご参照ください。
利用例
コネクタを使用して MaxCompute にアクセスします。詳細については、次のトピックをご参照ください。
SDK を使用して MaxCompute にアクセスします。詳細については、次のトピックをご参照ください。
Arrow データ型のマッピング
MaxCompute ストレージ API は、ストレージと転送中にデータの効率的で構造化された表現を保証するために、Apache Arrow データ型を使用します。MaxCompute ストレージ API を使用してデータを書き込む際、データは計算または処理されません。たとえば、Map データから重複キーは削除されません。ストレージエンジンに特定の制限がない限り、元のデータ構造が保持されます。
次の表は、MaxCompute と Apache Arrow のデータ型の間のマッピングを示しています。
MaxCompute データ型 | Arrow データ型 |
TINYINT | Int8Type |
SMALLINT | Int16Type |
INT | Int32Type |
BIGINT | Int64Type |
FLOAT | FloatType |
DOUBLE | DoubleType |
BOOLEAN | BooleanType |
DECIMAL | Decimal128Type 説明 MaxCompute の DECIMAL 型の精度は、ストレージ API の Decimal128Type よりも高いです。
|
DECIMAL(precision, scale) | Decimal128Type |
STRING | StringType |
BINARY | BinaryType |
VARCHAR | StringType |
CHAR | StringType |
DATETIME | TimestampType[1] 時間単位はミリ秒、タイムゾーンは UTC です。 |
TIMESTAMP | TimestampType[2] 時間単位はナノ秒、タイムゾーンは UTC です。 説明 TIMESTAMP 型はより広い値の範囲をサポートします。ストレージ API を使用して TimestampType の精度範囲を超える TIMESTAMP データを読み書きする場合、値の高精度部分は切り捨てられ、精度の低下が発生します。 |
DATE | Date32Type |
INTERVAL_DAY_TIME | DayTimeIntervalType 説明 INTERVAL_DAY_TIME 型はナノ秒まで正確です。ストレージ API の DayTimeIntervalType 型はミリ秒まで正確です。ストレージ API を使用して INTERVAL_DAY_TIME データを読み書きする場合、ナノ秒部分は切り捨てられ、精度の低下が発生します。 |
INTERVAL_YEAR_MONTH | MonthIntervalType |
ARRAY | ListType |
MAP | MapType 説明 MAP に重複キーが含まれる場合:
たとえば、生データ |
STRUCT | StructType |
JSON | StringType |