はじめに

catコマンドやgrepコマンドなどの標準出力の結果を、Verticaのテーブルにロードする方法をご紹介します。


用途

この方法は以下の様な場面で役に立ちます。

 ・一時テーブルや中間テーブル、集計テーブルを作成する場合
 ・テーブルを再構築したい場合
 ・他のデータソースからデータを取り込みたい場合



構文と実行例

下記構文の「SELECT文」内に元テーブルを指定し、「テーブル名」に別テーブルを指定します。

<標準出力のコマンド> | vsql -w <パスワード> -c “copy <テーブル名> from STDIN <各種オプション>”


サンプルデータの確認


テスト用テーブルの作成


標準出力の結果をテーブルにロード


作成したテーブルにテスト用のデータが正常にロードされました。


応用例

このやり方を応用すると、特定列のデータを任意の列にロードすることもできます。

特定列のデータを標準出力させてロード


1列目のデータと3列目のデータがそれぞれ1列目と3列目に正常にロードされました。



特定行+特定列のデータを標準出力させてロード


「5」のデータが含まれる行を抽出し、1列目と3列目のデータが正常にロードされました。



補足

今回はCSVファイルの標準出力結果をロードする例でしたが、さらに応用すると、他のノードで稼働している他社製データベースの標準出力の結果をVerticaに取り込むといったことも可能です。

コマンド例

<他社データベースからの標準出力の結果> | vsql -h <Vertica稼働ノード> -U <ユーザ名> -w <パスワード> -c “COPY <テーブル名> FROM STDIN <各種オプション>”


ちょっとしたテストなどを行う際にも利用できますので、是非お試しください。


参考情報

データロードに関するTipsはこちらの記事に纏めています。

データロードのまとめ
http://vertica-tech.ashisuto.co.jp/load-summary/


検証バージョンについて

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