About Me

My photo
Software Engineer at Starburst. Maintainer at Trino. Previously at LINE, Teradata, HPE.

2018-07-04

Visualize heatmap on Aster AppCenter

Aster AppCenterでheatmapのCustom Visualizationを作ってみました。
https://github.com/ebyhr/Teradata/tree/master/aac_heatmap



使い方はdb_table_nameにテーブル名を指定して、vizTypeにheatmapを指定します。
heatmapのライブラリは座標をx, y指定するようなデータの持ち方を前提にしているものが多いですが、あえてテーブルをそのまま表示して色付けするようにしています。
insert into app_center_visualizations (json) values (
'{
    "db_table_name": "public.confusionmatrix",
    "vizType": "heatmap",
    "title": "Report by confusionmatrix"
}')

Teradata AppCenterはたまに触っていますが、UXが微妙すぎてあまり使う気が起きません。バックエンドにKubernetesを据えたのは将来的にはいい判断になると思うんですが、現時点ではオーバーエンジニアリングかなと感じます。Javaでちょっとコードを書きたいだけなのにDockerfile書くのは面倒です。

話が変わりますが、最近SQLを二重実行するようなUDFを作ろうかなと考えています。分析クエリで欲しい場面は皆無ですが、バッチ処理で使いたい場面は多々あります。
AsterのSQL-MRであればコードを書くのは3分もあれば終わるのですが、良い名前が思いつかないのでペンディングにしています。
例えば全部のテーブルを削除したい時はこんなクエリになります。Javaであれば中のSELECT文の結果をResultSetで受け取り、ループを回してexecuteQueryを実行するだけです。
select * from xxx ( on (select 1)
 query ('select ''drop table '' || a.schemaname || b.tablename from nc_system.nc_all_schemas a inner join nc_system.nc_all_tables b on a.schemaid = b.schemaid')
)