Zrychlení migrace Netezza na Snowflake

Použití nástroje Hashmap Data Migrator (hdm )

(Jhimli Bora)

autorů: Jhimli Bora a John Aven

Hashmap Data Migrator (hdm) usnadňuje migraci dat z jedné datové platformy na druhou. Podporuje místní i cloudovou migraci datového skladu. hdm je navržen tak, aby byl velmi flexibilní, pokud jde o zdroj dat & cíl, systém správy stavu a umístění pracovní stanice.

Poznámka: Tento příspěvek na blogu je část série Hashmap Data Migrator. Další podrobnosti o podmínkách najdete v předchozích příspěvcích na blogu: ( hdm (Hashmap Data Migrator) )

Podívejme se na případ použití pro hdm. Níže uvidíme, jak snadné je nakonfigurovat a zahájit migraci dat z Netezza do Snowflake ( kombinace migrace s vysokým požadavkem od našeho klienta base) pomocí a lokálního systému souborů lokální ukládání datových souborů pro manipulace, např. blokování velkých souborů a Azure Blob Storage jako fáze úložiště pro načítání dat do Snowflake.

FS je souborový systém

K připojení k Netezze můžeme použít ovladač JDBC nebo ODBC. Existují také 2 způsoby, jak data přesunout; pomocí zdroje Netezza ( provést dotaz SQL a načíst v datovém rámci pandy ) a nd externí zdroj tabulky Netezza ( provedením dotazu SQL vytvořte externí tabulku a zapište data do souboru ).

Chcete-li začít, stačí vytvořit 2 konfigurační soubory :

  • profil YAML- obsahuje informace o připojení
  • potrubí YAML- uchovává informace o ploše

Profil YAML

Tento soubor ukládá informace o připojení ke zdroji, ploše, jímce a databázi pro správu stavu. Je uložen v místním FS a jeho cesta je nastavena v proměnné prostředí „HOME“. Níže uvedený formát souboru YAML je založen na přenosu dat Netezza to Snowflake pomocí stagingu azurového bloku:

dev:
netezza_jdbc: * Note:Add this section if using JDBC driver
host:
port:
database:
user:
password:
driver:
name:
path:
netezza_odbc: * Note:Add this section if using ODBC driver
host:
port:
database:
user:
password:
driver:
snowflake_admin_schema:
authenticator: snowflake
account:
role:
warehouse:
database:
schema:
user:
password:
azure:
url:
azure_account_url:
sas:
container_name:
state_manager:
host:
port:
database:
user:
password:
driver: ODBC Driver 17 for SQL Server <*Note:only for azure sql server>

Pipeline YAML

Uživatel by se měl na to soustředit, dokud se nevytvoří front-end. Toto je pouze konfigurační soubor. Když uživatel zadá parametry, bude tyto datové body přenášet do příslušných tříd a přesuňte data ze zdroje do jímky.

Pojďme diskutovat o částech v tomto souboru.

Orchestrator:

Orchestrátor (interní koncept hdm) používaný k orchestraci provádění vašeho kanálu. Možnosti jsou:

  • deklarovaný_orchestrátor – pro ruční nebo plně specifikované provedení
  • batch_orchestrator – pro případ, kdy je orchestrace definována v plně specifikované dávce
  • auto_batch_orchestrator – když je provádění napříč všemi tabulkami ve specifikovaných kombinacích databází a schémat

Je formátováno v YAML jako takové:

typ deklarovaný_orchestrátor

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

typ batch_orchestrator

orchestrator:
name: Batch Orchestration
type: BatchOrchestrator
conf:
back_pressure_factor: 10

typ auto_orchestrator

orchestrator:
name: Auto Batch Orchestration
type: AutoOrchestrator
conf:
back_pressure_factor: 10

State Manager:

Dále, a toto by mělo být konzistentní ve všech kanálech, je určen State Manager. Jedná se o lepidlo, které spojuje dohromady jinak nezávislé části potrubí. Možnosti jsou:

  • SqLiteStateManager – označuje, že se pro správu stavu používá SQLite
  • MySQLStateManager – označuje, že se pro správu stavu používá MySQL
  • SQLServerStateManager – označuje, že se pro správu stavu používá SQL Server
  • AzureSQLServerStateManager – označuje, že se pro správu stavu používá Azure SQL Server

Je formátován v YAML jako takový:

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

Deklarované datové odkazy:

V této části definujeme deklarované datové odkazy.

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

Datové odkazy šablony:

V této části definujeme templátované datové odkazy. Toto se používá společně s deklarovanými datovými odkazy při použití dávkového orchestrátoru.

template_data_links:
templates:
- batch_template:
batch_definition:
source_name: netezza_source
scenarios:
- table_name: ADMIN.TEST1
watermark:
column : T1
offset : 2
- table_name: ADMIN.TEST2
watermark:
column: U1
offset: 2
source:
name: netezza_source
type: NetezzaSource
conf:
env: netezza_jdbc
table_name: <