@chie_sas 様、
最初にご質問に「Viyaのメリットを一番利用できる方法」とあったため、何か解決したい大規模処理があるものと想定し、その課題解決のための最良と思われる手段の一つとして、SASプログラミングの選択肢をご紹介しましたが、そうではなく、pythonを前提とし、単純に操作機能の確認ということであれば、使い分けの指針として次のようにとらえると良いと思います。
python+swat+casは、例えば、python+sparkと同じようなことになります。
もともとViyaすわなちpython+swat+casは、python+pandasを置き換えるものではなく、最初のご質問にあるように、python+pandasでは現実的でない大規模処理をより高速に、スケーラブルに行いたいときにご利用いただくと良いものになります。ですので、もし大規模処理をするという前提の場合には、python+swat+casとpython+sparkを比較されると良いと思います。
ですので、python+pandasでパフォーマンスやスケーラビリティに課題がないということであれば、従来通りpython+pandasをお使いただければ良いと思います。そうではなく、python+pandasでは実現が困難な大規模処理を行いたいときには、その課題解決を目的として、python+swat+casをご利用いただくと良いと思います。その際には、pythonプログラミングとはいえ、大きくないデータを想定して作られているpandasとは異なり、大規模データを想定したアーキテクチャのため、swat+cas固有の知識が多少なりとも必要になります。
swat+cas利用時の操作方法全般を知りたい場合には、上でもご紹介しましたが、以下を参照していただくと全体像が分かりやすいと思います。
■こちらで、SWATを使用した使い方を、最小機能単位で紹介しています。
https://qiita.com/ViyaDev
■また、すでにお持ちかもしれませんが、網羅的にはこちらの本があります。
https://www.amazon.co.jp/SAS-Viya-Perspective-Kevin-Smith/dp/1629602760
■CASTable vs. DataFrame vs. SASDataFrame
こちらはリファレンスそのものですが、
https://sassoftware.github.io/python-swat/table-vs-dataframe.html
ここにもこのように記載されています。
「CASTable objects support much of the pandas.DataFrame API. However, since CAS tables can contain enormous amounts of data that wouldn’t fit into the memory of a single machine, there are some differences in the way the APIs work. 」
ここからもわかるように、大規模データを扱う際には固有の考慮がされたアーキテクチャーになるため、データの操作の仕方にも固有のものが出てくるということになります。
ご検討のご参考になれば幸いです。
... View more