In-Database計算

DATA=に指定した入力データセットがデータベース管理システム(DBMS)内のテーブルとして格納される場合、CORRプロシジャは、In-Database計算を使用して1変量統計量とSSCP行列を計算します。CORRプロシジャでDATA=データセットに関するIn-Database計算を実行すると、1変量統計量およびSSCP行列の要約テーブルを計算するSQLクエリが生成されます。このクエリはDBMSへと渡され、データベース内で実行されます。続いて、このクエリの結果がSASシステムに戻され、CORRプロシジャへと送られます。その後、CORRプロシジャは、これらの要約テーブルを使用して、通常の方法で(すなわちデータベースの外で)残りのタスク(相関行列や共分散行列の作成など)を実行します。

In-Database計算を行うことで、より高速な処理を実現し、データベースとSASソフトウェア間のデータ転送量を削減できます。In-Database計算の詳細は、SAS/ACCESS 9.2 for Relational Databases: Referenceの"In-Database Procedures"のセクションを参照してください。In-Database計算では、データセット全体をデータベースとSASシステム間でやり取りするのではなく、要約テーブルのみをやり取りします。これにより、要約テーブルの次元数(行と列の数)がデータベーステーブル全体の次元数(個々のオブザベーション数)よりもはるかに小さい場合に処理時間を大幅に削減できます。また、In-Database要約は、効果的な並列処理を使用することで、性能の向上も実現できます。

デフォルトでは、CORRプロシジャは可能な限りIn-database計算を使用します。In-database計算を使用する場合、EXCLNPWGTオプションが有効になり、正でない重みを持つオブザベーションが除外されます。IDステートメントは行レベルのアクセスを必要とするため、In-database計算では使用できません。また、HOEFFDING、KENDALL、SPEARMAN、OUTH=、OUTK=、OUTS=、PLOTS=の各オプションも行レベルのアクセスを必要とするため、In-database計算では使用できません。

In-Database計算を制御するには、LIBNAMEステートメントまたはOPTIONSステートメントでSQLGENERATIONオプションを使用します。SAS/ACCESS 9.2 for Relational Databases: Referenceの"In-Database Procedures"のセクションには、SQLGENERATIONオプションおよびその他のオプションの詳しい説明があります。CORRプロシジャには、In-Database計算を制御するオプションはありません。

オブザベーションの順番は、DBMSテーブルでは本質的に定義されません。次に示すオプションはオブザベーションの順番に関連するものであるため、In-Database計算を行うCORRプロシジャでは指定できません。

  • FIRSTOBS=またはOBS=データセットオプションを指定すると、CORRプロシジャはIn-Database計算を実行しません。

  • BYステートメントでNOTSORTEDオプションを指定すると、CORRプロシジャのIn-Database計算は同オプションを無視し、BY変数に関してデフォルトの昇順を使用します。

: CORRプロシジャでIn-database計算を実行するには、SAS Analytics Acceleratorをインストールする必要があります。