はじめに

本記事では、外部テーブル(External Table)の概要についてご紹介します。

外部テーブルとは

外部テーブルは、Hadoop HDFSやAWS S3、NFSマウントされた外部ストレージ上のデータに対して、Verticaにデータを取り込まずに、SQLで直接参照できるテーブルです。
Verticaに格納される通常のテーブルとは異なり、更新処理(INSERT/UPDATE/DELETE)や通常のテーブルほどの高速な検索は行えませんが、データレイク上のデータもそのままVerticaで活用できるなど、様々な課題の解決に役立ちます。



外部テーブルが解決する課題

データレイク上のデータ分析処理が遅い

・Hadoopのエコシステム(Hive、Drill等)では、多くの分析時間を必要とし、複雑なSQLも処理できない。

・AWS S3上の外部データをVerticaで高速に分析したい。



Verticaで腹持ちせずに利用したい

・Verticaに取り込んで頻繁に分析するHOTデータではないが、外部のCOLDデータもVerticaで手軽に分析したい。

・機械学習の学習データをVerticaに取り込むことなく、予測モデルを作成する時だけ参照したい。

・データを二重持ちしないことで、常に最新のデータをストリーミング処理を行わずに参照したい。



すべてのデータをVerticaに移行できない

・Verticaは格納データのサイズに対して課金されるので、全てのデータをVerticaに移行して利用するにはコスト的に厳しい。

・使用頻度の低いデータは外出ししているが、Verticaで分析する際のデータの取り込みや利用後の削除に時間がかかっている。





※ParquetファイルまたはORCファイルを外部テーブルとして参照する場合、通常ライセンスと比較して安価な専用のライセンスがございます。ライセンスの詳細に関心がある方は、本ぺージの一番下にあるお問い合わせ先へお問い合わせください。

参考情報

Working with External Data
https://www.vertica.com/docs/9.2.x/HTML/Content/Authoring/AdministratorsGuide/Tables/ExternalTables/Intro.htm

CSVファイルを外部テーブルとして利用する方法
http://vertica-tech.ashisuto.co.jp/external-table-on-vertica/

外部テーブル用のCSVファイルを配置する場所
http://vertica-tech.ashisuto.co.jp/place_for_csv_file_as_external_table/

S3のデータをVerticaにロードする/外部テーブルを使用してS3内のデータファイルを検索する
http://vertica-tech.ashisuto.co.jp/copy_directly_s3/

テーブルデータをParquetファイルとして出力する方法
http://vertica-tech.ashisuto.co.jp/export_to_paquet/

Management Consoleで外部テーブルの利用状況を確認する方法(9.1新機能)
http://vertica-tech.ashisuto.co.jp/monitor_external_data/

検証バージョンについて

この記事の内容はVertica 9.2で確認しています。

更新履歴

2019/9/12 本記事を公開