SASのIn-Database機能のご紹介

1. はじめに 前回投稿しました「SAS/ACCESSのご紹介とSnowflakeとの連携デモ」はご覧になったでしょうか。SASと外部のデータストレージサービスを連携する「SAS/ACCESS」のご紹介と、実際に「Snowflake」というサービスに連携してみました。今回は、その続きとして、10年以上前からビッグデータ・アナリティクスの基本アーキテクチャである、In-Database機能の代表的な機能である、SQLパススルーという機能をご説明し、デモを準備しました。 2. SQLパススルーについて SAS/ACCESS がインストールされている場合、SQLパススルーを使用してデータストレージサービスにクエリできます。接続方法に応じてSQLパススルーは、「暗黙的パススルー」と「明示的パススルー」に分けることができます。 暗黙的パススルーの価値は、作成したSASコードが自動的にデータストレージサービスが処理できるSQLに変換され、そのSQLをデータストレージサービス側に与えることにあります。ですので、SASで実行されたSQLやSASプロシジャに指定されたWHERE句など、可能な限りデータストレージサービス側で処理を行い、結果だけをSAS側に転送することが可能です。一方、明示的パススルーの場合には、DB依存のSQLを明示的に記述することできます。暗黙的パススルーと明示的パススルーについてまとめた表を下に記載していますので、ご覧ください。今回は、暗黙的パススルーについて詳しくご紹介したいと思います。   ▲SAS CommunityでSQL Pass throughについて質問するユーザー 暗黙的パススルーを使用する方が良いか、明示的パススルーを使用するのが良いのか気になるかと思います。実はこのトピックは、SAS Communityでもよく見られ、SAS/ ACCESSを使用している全世界のユーザーにとっても気になる質問です。どちらを使用するかは、どこに基準を置くか、また、SASとデータストレージサービスの環境のスペックによって異なると思います。ですので、皆さんもこのような疑問が生じた場合は、SASに相談してみてはいかがでしょうか。   3. 暗黙的パススルーのデモ 3-1. データの紹介とデモの概要 今回のデモのために、「pets」と「owners」という名前で２つのテーブルをデータストレージサービス(今回は、Snowflake)側に事前に保存しておきました。 「pets」テーブルには、３つのカラムがあります。 Id: ペット固有のid Name: ペットの名前 Type: ペットの種類(犬、猫、その他) Id Name Type 1 オオビ 犬 2 ローザ 猫 3 ワンチャン その他 … … …   もう１つのテーブル「owners」にも３つのカラムがあります。 Id: オーナー固有のid Name: オーナーの名前 [...]