こんにちは!
みなさんはデータベースのデータにアクセスしようと思ったとき、どの言語を使用しようと思いますか?一般的に考えたとき、RDBのデータにアクセスするときにはSQLを使おうと思うのが普通ですよね?
でも、Vantageではその一択に縛られる必要はないのです。
その種明かしをお話ししましょう。
言語ネイティブライブラリ
テラデータはVantageのデータをPythonやRで扱うための言語ネイティブなライブラリを提供しています。Pythonでいえばteradataml、Rではtdplyerというライブラリです。
このライブラリの特長は何といってもデータ処理をデータベース内部で行ってしまうということです。このテータベース内部で処理を行ってしまうということにどういった意味があるかと言いますと、
・ 分析に使用する元のデータがどれだけ巨大でも、それをクライアントに移動する必要がない
・ データの処理をハイ・スペックなデータベース・サーバーの持つパワーで行える
ということが挙げられます。
言い換えると分析のためのデータ準備や分析そのものSQLで行うのとまったく同等にとても早く行うことができる、ということです。
一時テーブルとデータ・フレーム
teradatamlやtdplyerを使用して処理を行う場合、データベース上のテーブルをデータフレームとして扱うことができるようになります。またデータの抽出や関数を実行して得られた結果などは一時テーブルとしてVantageの中に保存され、それも言語側ではデータフレームとして扱うことができます。
この一時テーブルは現在のセッションが実行されている間のみ有効となるテーブルで、セッションの切断と同時に自動的にクリーンアップされます。これもこの機能の優れているところで、ワークテーブルの消し忘れにより不要なテーブルがデータベースに残り続けてしまうといったことが無くなります。
Vantageのデータフレームと汎用のデータフレーム
データベース上のデータをデータフレームとして扱う場合はVantageのライブラリ独自のデータフレームとして扱われます。でも分析した結果を汎用的な、例えばPythonならpandasにしてpandas前提のライブラリを使ってビジュアル化したりとかしたくなりますよね。
それもわずか1コマンド、to_pandasという関数1つで実行することができます。またこの時点ではデータのサイズはとても小さくなっていることがほとんど。データの移動に時間をかけなくてもよいのです。
まとめ
いかがですか?Vantageはデータの処理をPythonやRでもSQLによる処理とまったく変わらないパフォーマンスで処理することが可能です。これまでに使い慣れた方法でVantageのデータを触ってみてくださいね!
また言語ネイティブ・ライブラリやVantageが持つ分析関数についてはテラデータのメンバーが投稿した記事がQiita上にもたくさんあります。ぜひ一度ご覧くださいね!