Netezzaからスノーフレークへの移行の加速

Hashmap Data Migrator(hdm )

(Jhimli Bora)

JhimliBoraとJohnAvenによる

ハッシュマップデータ移行(hdm)を使用すると、あるデータプラットフォームから別のデータプラットフォームにデータを簡単に移行できます。オンプレミスとクラウドの両方のデータウェアハウスの移行をサポートします。 hdmは、データソース&の宛先、状態管理システム、およびステージングの場所に関して非常に柔軟になるように設計されています。

注:このブログ投稿はHashmap DataMigratorシリーズの一部です。用語の詳細については、以前のブログ投稿を参照してください。 hdm(Hashmap Data Migrator)

hdmの使用例を見てみましょう。以下を参照してください。 NetezzaからSnowflake(クライアントからの需要の高い移行の組み合わせ)へのデータの構成と移行がいかに簡単であるかがわかります。ベース) a ローカルファイルシステム

データファイルをローカルでステージングして操作します。たとえば、大きなファイルをチャンク化し、 Azure Blob Storage をデータの読み込みのストレージステージとして使用します。スノーフレークに。

FSはファイルシステムです

JDBCまたはODBCドライバーのいずれかを使用してNetezzaに接続できます。また、データをオフロードする方法は2つあります。Netezzaソースを使用する( SQLクエリを実行してパンダデータフレームにロードする em )a nd Netezza外部テーブルソース( SQLクエリを実行して外部テーブルを作成し、データをファイルに書き込みます)。

開始するには、 2つの構成ファイルを作成します

  • プロファイルYAML-接続情報を保持します
  • パイプラインYAML-ステージ情報を保持します

プロファイルYAML

このファイルには、状態管理のためにソース、ステージ、シンク、データベースへの接続情報が格納されます。ローカルFSに保存され、そのパスは環境変数「HOME」に設定されます。以下のYAMLファイル形式は、紺碧のblobステージングを使用したNetezzaからSnowflakeへのデータ転送に基づいています。

パイプラインYAML

フロントエンドが構築されるまで、ユーザーはこれに集中する必要があります。これは単なる構成ファイルです。ユーザーがパラメーターを指定すると、これらのデータポイントが流れます。関連するクラスに移動し、データをソースからシンクに移動します。

このファイルのセクションについて説明します。

オーケストレーター:

パイプラインの実行をオーケストレーションするために使用されるオーケストレーター(内部hdmコンセプト)。オプションは次のとおりです。

  • defined_orchestrator —手動または完全に指定された実行の場合
  • batch_orchestrator —オーケストレーションが完全に指定されたバッチで定義されている場合
  • auto_batch_orchestrator —データベースとスキーマの指定された組み合わせのすべてのテーブルで実行が行われる場合

次のようにYAMLでフォーマットされます。

declared_orchestratortype

orchestrator:
name: Manual Orchestration
type: DeclaredOrchestrator
conf: null

batch_orchestratorタイプ

自動オーケストレータータイプ

State Manager:

次に、これはすべてのパイプラインで一貫している必要があり、StateManagerが指定されます。これは、パイプラインの独立した部分を結合する接着剤です。オプションは次のとおりです。

  • SqLiteStateManager —SQLiteが状態管理に使用されることを示します
  • MySQLStateManager —MySQLが状態管理に使用されることを示します
  • SQLServerStateManager — SQLServerが状態管理に使用されることを示します
  • AzureSQLServerStateManager — Azure SQLServerが状態管理に使用されることを示します

YAMLで次のようにフォーマットされます。

state_manager:
name: state_manager
type: SQLiteStateManager
conf:
connection: state_manager

宣言されたデータリンク:

このセクションでは、宣言されたデータリンクを定義します。

declared_data_links:
stages:
- source:
name: netezza_source
type: NetezzaSource
conf:
env: netezza_jdbc
table_name: ADMIN.TEST1
watermark:
column: T1
offset: 2
checksum:
function:
column:
sink:
name: fs_chunk_stg
type: FSSink
conf:
directory: $HDM_DATA_STAGING

テンプレートデータリンク:

このセクションでは、テンプレートデータリンクを定義します。これは、バッチオーケストレーターを使用するときにdeclared_data_linksとともに使用されます。

パイプラインYMALの例:

以下はがオーケストレーションを宣言した最終パイプラインYAML SQLite 状態管理の場合、ファイルあたり 200 行のチャンクサイズ、スノーフレークストレージステージ名 TMP_HDM 、紺碧のブロブコンテナデータ、および

netezza_jdbc Netezza環境として。

version: 1

orchestrator:
name: Manual Orchestration
type: DeclaredOrchestrator
conf: null

state_manager:
name: state_manager
type: SQLiteStateManager
conf:
connection: state_manager

declared_data_links:
stages:

# Netezza to FS - single
- source:
name: netezza_source
type: NetezzaSource
conf:
env: netezza_jdbc
table_name: ADMIN.TEST1
watermark:
column: T1
offset: 2
checksum:
function:
column:
# directory: $HDM_DATA_STAGING
# note: directory only for NetezzaExternalTableSource typesink:
name: fs_chunk_stg
type: FSSink
conf:
directory: $HDM_DATA_STAGING

# Chunk FS to FS
- source:
name: fs_chunk_stg
type: FSChunkSource
conf:
directory: $HDM_DATA_STAGING
chunk: 200
sink:
name: fs_stg
type: FSSink
conf:
directory: $HDM_DATA_STAGING

# FS to Azure Blob
- source:
name: fs_stg
type: FSSource
conf:
directory: $HDM_DATA_STAGING
sink:
name: azure_stg
type: AzureBlobSink
conf:
env: azure
container: data

#cloud storage create staging and run copy
- source:
name: azure_stg
type: AzureBlobSource
conf:
env: azure
container: data
sink:
name: sflk_copy_into_sink
type: SnowflakeAzureCopySink
conf:
env: snowflake_knerrir_schema
stage_name: TMP_HDM
file_format: csv
stage_directory: data

次に、hdmの実行方法と前提条件について説明します。

カタログ

前にコードを実行します。あるデータベースから別のデータベースにデータを移行する場合は、次のことを行う必要があります。

  1. 既存のアセットをカタログ化する。
  2. ソースシステムのアセットをターゲットにマッピングするシステム。

実行

環境の指定、パイプラインの定義などが行われたので、あとはコードを実行するだけです。コードはbashから(またはターミナルで)次の方法で実行されます:

python -m hashmap_data_migrator {manifest} -l {log settings} -e {env}

or

hashmap_data_migrator {manifest} -l {log settings} -e {env}

パラメーターは次のとおりです。

  • マニフェスト—パス実行するマニフェストの数
  • log_settings —ログ設定パス、デフォルト値=” log_settings.yml”
  • env —接続情報を取得する環境、デフォルト値=” prod”

このハッシュマップメガバイトビデオでhdmのデモをご覧ください:

最終的な考え

上記では、NetezzaからSnowflakeへのユースケースを使用して、あるデータウェアハウスから別のデータウェアハウスへのデータ移行を開始するのがいかに簡単かを示しました。

HashmapDataMigratorは非常に柔軟性があります。その理由は次のとおりです。

  • あるタイプのデータウェアハウスから別のタイプ(クラウドからクラウド、オンプレムからクラウド、クラウドからオンプレム)へのデータの移行が可能です。
  • 状態管理用のさまざまなタイプのデータベース(SQLite、MySQL、SQL Server、Azure SQL Server、PostgreSQL、MongoDB)を許可します。
  • さまざまなステージング環境(ローカルファイルシステム、Azure BLOBストレージ、AWS)を許可します。 S3、GCPストレージ)。

デジタルトランスフォーメーションを加速する準備はできていますか?

Hashmapでは、クライアントと協力して、より良いものを一緒に構築します。

データと分析の製品とアプリケーションをクラウドに移行することを検討している場合、または既存のクラウドプログラムでより価値の高い成果を提供するためのヘルプとガイダンス、およびいくつかのベストプラクティスが必要な場合は、お問い合わせください。

ハッシュマップ

、NTTデータ会社は、さまざまな有効化ワークショップと評価を提供していますクラウドサービスの一部としてのサービス、クラウドの近代化と移行サービス、およびコンサルティングサービスパッケージ。お客様の特定の要件に対応させていただきます。 こちらにご連絡ください。

その他のツールやコンテンツ

スノーフレークユーティリティ

アクセラレータ|スノーフレークでさらに多くのことを行う| Hashmap

Hashmapが利用できるすべてのSnowflakeユーティリティを試して、Snowflake:SnowflakeInspectorでさらに多くのことを実行してください…

www.hashmapinc.com

ハッシュマップメガバイト|一口サイズのビデオシリーズ

ハッシュマップメガバイトは、メガクラウドのアイデアが一口サイズの部分で説明される毎週のビデオシリーズです。

www.hashmapinc.com

他のチャネルで自由に共有し、ハッシュマップのすべての新しいコンテンツに遅れずについていくようにしてください ここ

。データエンジニアリングとクラウドに関するあらゆることについてのカジュアルな会話を聞くには、Hashmapのポッドキャストをチェックしてください タップのハッシュマップ

Spotify、Apple、Google、その他の人気のストリーミングアプリでも同様です。

ハッシュマップオンタップ| Hashmapポッドキャスト

Hashmapホストと特別ゲストの交代キャストは、飲み物を楽しみながら、さまざまな視点からさまざまなテクノロジーを探索します。

www.hashmapinc.com

Jhimli Bora クラウドおよびデータエンジニアです ハッシュマップ

、NTTデータ会社 データ、クラウド、IoT、AI / MLソリューションを提供し革新的な技術者とドメインの専門家のグループによる業界全体の専門知識のコンサルティングにより、お客様にとって価値の高いビジネス成果を加速します。 LinkedIn で彼女とつながりましょう。

John Aven 、Ph.D。は、 のエンジニアリングディレクターです。ハッシュマップ

、NTTデータ会社 データ、クラウド、IoT、AI / MLソリューションを提供し、業界全体の専門知識をコンサルティングして、革新的な技術者とドメインの専門家のグループがお客様に価値の高いビジネス成果をもたらします。必ず LinkedIn そして、データ主導のビジネス成果を加速するためのより多くの視点と洞察を求めて連絡してください

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です