通常、データベース内のテーブルデータはデータベースのストレージ領域に格納されますが、外部テーブルのデータは外部ストレージサービスに格納されます。外部テーブルを作成する際には、データファイルのパスとフォーマットを定義する必要があります。作成が完了すると、ユーザーは外部テーブルを通じて外部ストレージサービスからファイル内のデータを読み取ることができます。
外部テーブルは通常のテーブルと同様に、他のテーブルと結合したり、集計やソートなどの操作を行うことができます。ただし、外部テーブルと通常のテーブルとの違いは以下の通りです:
外部テーブルのデータは外部ファイルに格納され、通常のテーブルのデータはデータベースに格納されます。
外部テーブルは読み取り専用であり、クエリ文で使用することはできますが、DML操作を実行することはできません。
外部テーブルでは制約の追加やインデックスの作成はサポートされていません。
一般的に、外部テーブルへのアクセス速度は通常のテーブルよりも遅くなります。
HDFS外部テーブル
HDFS外部テーブルの読み込み
Hadoop分散ファイルシステム(HDFS)は、Hadoopエコシステムの中核的なコンポーネントであり、大規模データセットの保存および処理に使用されます。そのため、OceanBaseデータベースV4.3.5 BP1バージョンでは、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環境のデプロイを参照してください。