2
1

CARTO Analytics Toolbox for Snowflakeを使ってみよう

Last updated at Posted at 2023-12-08

この記事はSnowflake Advent Calendar 2023シリーズ2の9日目です。
みんなでアドベントカレンダーを埋め尽くそうぜ!

はじめに

ここ1年くらいのSnowflakeは地理空間データの扱いがものすごいスピードで改良されているのですが、20年以上の歴史のあるPostGISと比べるとまだまだ足りない機能があります。
…という話をSnowVillageでしていたら「足りない関数はCARTO Analytics Toolboxにあったりするので、そっちも見るとハッピーになれるかと」というコメントが。
なにそれ知らない、ハッピーになりたい!試してみましょう。

使い方

CARTO Analytics Toolboxには2つのバージョンがあります。CARTOのアカウントなしで利用できる基本的なものがCARTO Analytics Toolbox Coreです。
これはSnowflake上のMarketplaceでNative Appとして公開されていて、無料で使用することができます。

Marketplace

取得ボタンを押すことでNative Appを自分のアカウントにインストールできます。
Application名はワークシートなどからCARTOの関数にアクセスするときに使うアプリケーション名、
インストールに使用したウェアハウスはインストール中に使うウェアハウスです。

Get Native App

1分ほどでインストールできました。

Complete to Get Native App

以降はワークシートからCARTOの関数を呼び出すことができます。
アプリケーション名がデフォルトのままであれば、例えば以下のように呼び出せます。

SELECT CARTO_ANALYTICS_TOOLBOX_CORE.CARTO.VERSION_CORE();

試してみよう

ではワークシートからCARTOの関数を呼び出してみましょう。
例えば東京からサンフランシスコまでの大圏コースを調べてみましょう。サンフランシスコに行きたいかー!

APIリファレンスはこちらです。

-- 東京とサンフランシスコの緯度・経度を定義してGEOGRAPHY型に変換
WITH tokyo AS (SELECT TO_GEOGRAPHY('POINT(139.6917337 35.6895014)') as geog),
     sanfrancisco AS (SELECT TO_GEOGRAPHY('POINT(-122.4192524 37.7794658)') as geog)
-- 大圏コースを計算。50個の点で近似
SELECT CARTO_ANALYTICS_TOOLBOX_CORE.CARTO.ST_GREATCIRCLE(tokyo.geog, sanfrancisco.geog, 50) AS geog
FROM tokyo, sanfrancisco;

JSON形式で出力されました。ただ、数字を見ても正しいか分かりませんね…

Result on Snowsight

OpenStreetMap WKT Playgroundというサイトで地理空間データの可視化ができるのですが、入力フォーマットがWKT形式に限定されています。
WKT形式で出力されるように設定して再実行してみましょう。

-- 出力フォーマットをWKT形式に設定する
ALTER SESSION SET GEOGRAPHY_OUTPUT_FORMAT='WKT';
-- 東京とサンフランシスコの緯度・経度を定義してGEOGRAPHY型に変換
WITH tokyo AS (SELECT TO_GEOGRAPHY('POINT(139.6917337 35.6895014)') as geog),
     sanfrancisco AS (SELECT TO_GEOGRAPHY('POINT(-122.4192524 37.7794658)') as geog)
-- 大圏コースを計算。50個の点で近似
SELECT CARTO_ANALYTICS_TOOLBOX_CORE.CARTO.ST_GREATCIRCLE(tokyo.geog, sanfrancisco.geog, 50) AS geog
FROM tokyo, sanfrancisco;

出力された結果をコピペすれば、大圏コースを確認することができました!

Result on OpenStreetMap

おわりに

CARTO Analytics Toolboxには色んな関数があるので地理空間データで遊ぶのが捗りますね!
そしてNative AppによるSnowflakeの機能拡張、簡単なのにポテンシャルがすごい。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1