Pysparkマイグレーション

[Teradata Vantage Teradata® Package for Python User Guide](https://docs.teradata.com/r/Teradata-Package-for-Python-User-Guide/November-2021/Introduction-to-Teradata-Package-for-Python/The-teradataml-Package) [2024/04/23時点]の翻訳です。

Sparkマイグレーションはteradatamlの機能の一つで、PysparkワークロードをTeradata Vantageにマイグレーションすることができます。

<iframe width="560" height="315" src="https://www.youtube.com/embed/Iz5E-yEvdT0?si=9HV3TYzvYCtgtOqX" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

:::note information
各機能の詳細な説明に関しては、段階的にリンクを追加していきますので、リンクから詳細ページを参照してご利用下さい。
:::

## Sparkマイグレーションとは？
DatabricksやHadoopで動作するSparkのワークロードを、VantageCloud上で動作する分析機能であるClearScape Analyticsにマイグレーションできるように代替機能およびコンバージョン機能をpythonライブラリとして、リリースを行いました。

<img width="900" alt="Sparkマイグレーション.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2740723/89b5a203-cc66-fa8b-751b-6f582c4ad25c.png">
※ teradatamlは、Teradata Vantageの操作・分析を実施するためのpythonライブラリです。

#### Sparkプラットホームのマイグレーション方法
- Sparkスクリプトのコンバージョン機能は、Spark SQL、データフレーム、機械学習をカバーしています。
- teradataml API はSpark 上の Pandas API ライクな構文のため、 Pandasはteradatamlで代替します。
- ストリーミング、Spark コア、および RDD 機能は移行の対象外になります。

## Teradataml Sparkの特徴
TeraSpark(※1) は、Sparkの分析ワークロードをTeradata Vantage上に置き換えることで、 Pysparkデータサイエンティストによる分析をTeradata Vantageで行えるようにするだけでなく、それらの分析結果を業務に直結して利用することで、より業務効果を高めていくことが可能になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2740723/4a8c5b9e-5485-f695-9d77-3a3aa240d735.png)

※1 TeraSparkはSparkを置き換えるための機能群のことを指すため、SparkアーキテクチャーをTeradata Vantage で実現するためのものではありません。

## Sparkマイグレーションの概要
分析システムとして利用されているSparkからデータ、Pysparkスクリプト、分析モデルをマイグレーションする方法の概要については以下のようになります。

<img width="900" alt="Sparkマイグレーションの概要.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2740723/b28edb7b-a7e7-12d1-20b5-e0289abb898d.png">

:::note information
モデルは PMML に変換することで移行できますが、Databricks はすべてのモデルに対して PMML 変換を提供するわけではないため、一部のモデルは移行できない可能性があります。
:::
:::note information
BYOM=Bring Your Own Modelの略語。他のシステムで作成した分析モデルを、Teradata Vantageにインポートして、利用できるようにする機能のことです。。
:::

## Pysparkスクリプトのコンバージョン手順
Databricks/HadoopのPysparkスクリプトをpyspark2teradatamlというコンバージョン機能を用いて、以下の手順でコンバージョンして利用できるようになります。

<img width="900" alt="Pysparkスクリプトのコンバージョン手順.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2740723/6e676dc9-a5be-4511-62e0-7837ddc6a59b.png">

## コンバージョンレポート
Pysparkスクリプトをteradatamlspkでコンバージョンした結果として、コンバージョンレポートが生成されます。
このコンバージョンレポートを参照することにより、個別に確認が必要な箇所を特定して、対応を行います。

<img width="900" alt="コンバージョンレポート.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2740723/e303da81-c000-9be8-0802-96fbfc51e647.png">

#### レポートの確認方法
| 色 | 説明 |
|:-|:-|
|<font color="Red">赤色</font>|teradatamlspkに機能がないため、代替機能にて対応が必要なもの。|
|<font color="Blue">青色</font>|teradatamlspkに機能があるが、機能に差がある可能性があり、確認が必要なもの。|
|黒色|対応が不要なもの|

## おわりに
:::note warn
警告
この本書は[Teradata Vantageドキュメンテーション](https://docs.teradata.com/)よりトピックに必要な情報を抜粋したものです。掲載内容の正確性・完全性・信頼性・最新性を保証するものではございません。正確な内容については、原本をご参照下さい。
また、修正が必要な箇所や、ご要望についてはコメントをよろしくお願いします。
:::

#### Teradata Vantageへのお問合せ
[Teradata Vantage へのお問合せ](https://www.teradata.jp/About-Us/Contact)