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

ユースケース
Storage API は、データへのアクセス性とマルチエンジンコンピューティングが必要なシナリオに最適です。企業や開発者がコンピューティングフレームワーク間で柔軟に切り替えたり、特定のエンジン機能を使用して MaxCompute のデータを処理したりする必要がある場合、Storage API は橋渡し役として機能し、データ交換を促進し、多様なデータ処理を可能にします。
主な機能
高スループット:Storage API は、効率的な列指向データの読み取り、転送前のデータフィルタリングのための述語プッシュダウン、および Arrow データフォーマットをサポートします。
安全で使いやすい:テーブルセマンティクスによる基盤となるストレージへの直接的な読み取りアクセスを提供します。これにより、ストレージの複雑さを抽象化すると同時に、プロジェクトの分離、アクセス制御、データ暗号化などのセキュリティポリシーに準拠します。
エコシステム統合:EMR 上の Spark と StarRocks は、コネクタを使用して MaxCompute のデータに直接アクセスできます。これにより、コンピューティングエンジンの統合が簡素化されます。
注意事項
MaxCompute にアクセスするサードパーティエンジンは、標準テーブル、パーティションテーブル、クラスタテーブル、Delta テーブル、およびマテリアライズドビューを読み取ることができます。ただし、MaxCompute の外部テーブルまたは論理ビューを読み取ることはできません。
JSON 型のデータは文字列として読み取られます。
従量課金の Storage API では、同時リクエスト数はテナントあたり 1,000、転送速度は同時リクエストあたり 10 MB/s に制限されます。
データ転送リソース
サードパーティエンジンがデータ転送タスクに MaxCompute Storage API を使用する場合、Data Transmission Service の専有リソースグループ (サブスクリプション) リソースのいずれかを使用できます。次の表にリソースを示します。
リソースグループ名 | 課金の説明 | サポートされるリージョン | 使用手順 |
このリソースグループは、サブスクリプション課金方式に基づいています。購入した同時インスタンス数に基づいて課金されます。 |
|
リソース監視 ページで、データ伝送サービス (サブスクリプション) の専用リソースグループの使用量の詳細を確認できます。 詳細については、「リソース観察」をご参照ください。
例
コネクタを使用して MaxCompute にアクセスします。詳細については、次のトピックをご参照ください。
SDK を使用して MaxCompute にアクセスします。詳細については、次のトピックをご参照ください。
Arrow データ型マッピング
MaxCompute Storage API は、Apache Arrow データ型を使用して、ストレージおよび転送中のデータの効率的で構造化された表現を実現します。MaxCompute Storage 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 型の精度は、Storage API Decimal128Type の精度よりも高くなります。
|
DECIMAL(precision, scale) | Decimal128Type |
STRING | StringType |
BINARY | BinaryType |
VARCHAR | StringType |
CHAR | StringType |
DATETIME | TimestampType[1] 時間単位はミリ秒で、タイムゾーンは UTC です。 |
TIMESTAMP | TimestampType[2] 時間単位はナノ秒で、タイムゾーンは UTC です。 説明 TIMESTAMP 型は、より広い値範囲をサポートします。Storage API を使用して TimestampType の精度範囲を超える TIMESTAMP データを読み書きする場合、値の高精度部分が切り捨てられます。これにより、精度が失われます。 |
DATE | Date32Type |
INTERVAL_DAY_TIME | DayTimeIntervalType 説明 INTERVAL_DAY_TIME 型はナノ秒まで正確です。Storage API DayTimeIntervalType 型はミリ秒まで正確です。Storage API を使用して INTERVAL_DAY_TIME データを読み書きする場合、ナノ秒部分が切り捨てられます。これにより、精度が失われます。 |
INTERVAL_YEAR_MONTH | MonthIntervalType |
ARRAY | ListType |
MAP | MapType 説明 MAP に重複するキーが含まれている場合:
たとえば、生データ |
STRUCT | StructType |
JSON | StringType |