通常、データベース内のテーブルデータはデータベースのストレージ領域に格納されますが、外部テーブルのデータは外部ストレージサービスに格納されます。外部テーブルを作成する際には、データファイルのパスと形式を定義する必要があります。作成後、ユーザーは外部テーブルを通じて外部ストレージサービスからファイル内のデータを読み取ることができます。
外部テーブルは通常のテーブルと同様に、他のテーブルとの結合、集計、ソートなどを行うことができます。外部テーブルと通常のテーブルの違いは以下のとおりです:
外部テーブルのデータは外部ファイルに格納され、通常のテーブルのデータはデータベースに格納されます。
外部テーブルは読み取り専用であり、クエリ文で使用できますが、DML操作は実行できません。
外部テーブルでは制約の追加やインデックスの作成はサポートされません。
一般的に、外部テーブルへのアクセス速度は通常のテーブルよりも遅くなります。
HDFS外部テーブル
HDFS外部テーブルの読み取り
Hadoop分散ファイルシステム(HDFS)は、Hadoopエコシステムにおける中核的なコンポーネントであり、大規模データセットの格納と処理に使用されます。そのため、OceanBaseデータベースではHDFS外部テーブルの読み取り機能が新たに追加され、HDFSに保存されたデータへの直接アクセスをサポートしています。
HDFS外部テーブル(ファイルはHDFS上にある)の作成に関する詳細情報については、CREATE EXTERNAL TABLEを参照してください。
HDFSのSDKはJavaで開発されており、OceanBaseはC++で開発されているため、JNI(Java Native Interface)フレームワークを介して橋渡しを行う必要があります。同様に、ODPSのJava SDKもJava環境が必要です。HDFS外部テーブル機能を使用するには、Java環境を構成し、特定のパラメータを通じて制御することで、HDFSファイルにアクセス可能なテーブルを作成する必要があります。関連するパラメータは以下のとおりです:
Java環境の構成に関する詳細情報については、OceanBaseデータベースJAVA SDK環境のデプロイを参照してください。
HDFS外部テーブルの書き込み
OceanBaseデータベースはV4.4.0バージョンからHDFS外部テーブルドライバの書き込み機能をサポートしています。HDFS外部テーブルドライバの書き込みに関する詳細情報については、SELECT INTOを参照してください。