16.20 - 例: Pythonモジュールを起動するためにSCRIPTテーブル演算子を使用してJSON出力を作成する - Teradata Vantage NewSQL Engine

Teradata Vantage™ SQL演算子およびユーザー定義関数

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
管理
featnum
B035-1210-162K-JPN

以下の例では、Pythonの組み込みモジュールを使用して、WebサイトのURL問合わせ文字列からJSONオブジェクトを作成します。これは、JSONデータ型を使用した問合わせが可能になるように、Web URLデータをJSONに変換する場合に有用です。

スクリプトには、Pythonバージョン2.6以降がシステムにインストールされていることが必要になります。

‘urltojson.py’ Pythonスクリプト:

#!/usr/bin/python
import sys
import json
import urlparse
for line in sys.stdin:
    print json.dumps(urlparse.parse_qs(urlparse.urlparse(line.rstrip('
	\n')).query))

スクリプトをインストールし、サンプル データで実行するSQL:

DATABASE mytestdb;
create table sourcetab(url varchar(10000));
ins sourcetab('https://www.google.com/finance?q=NYSE:TDC');
ins sourcetab('http://www.ebay.com/sch/i.html?_trksid=p2050601.m570.l1313.TR0.TRC0.H0.Xteradata+merchandise&_nkw=teradata+merchandise&_sacat=0&_from=R40');
ins sourcetab('https://www.youtube.com/results?search_query=teradata%20commercial&sm=3');
ins sourcetab('https://www.contrivedexample.com/example?mylist=1&mylist=2&mylist=...testing');
-- This assumes that urltojson.py is in the current directory.
call sysuif.replace_file('urltojson', 'urltojson.py', 'cz!urltojson.py', 0);
set session searchuifdbpath=mytestdb;
select cast(JSONresult as JSON)
from SCRIPT(
    ON(select url from sourcetab)
    SCRIPT_COMMAND('./mytestdb/urltojson.py')
    RETURNS(' JSONresult VARCHAR(10000)')
);

結果:

JSONresult
----------------------------------------------------------------------------------------
{"q": ["NYSE:TDC"]}
{"mylist": ["1", "2", "...testing"]}
{"_from": ["R40"], "_trksid": ["p2050601.m570.l1313.TR0.TRC0.H0.Xteradata merchandise"], "_nkw": ["teradata merchandise"], "_sacat": ["0"]}
{"search_query": ["teradata commercial"], "sm": ["3"]}