Al actualizar una base de datos Netezza (IBM PureData) para SAS Customer Intelligence 360, el uso de SQL Pass-Through (EXECUTE(...) BY NETEZZA) es la estrategia más eficiente. Este método permite enviar sentencias DDL directamente al motor de la base de datos, aprovechando características nativas como la cláusula DISTRIBUTE ON, fundamental para el rendimiento en arquitecturas de procesamiento paralelo masivo (MPP).
Type : EXTERNE
El script no utiliza ningún dato SAS. Opera exclusivamente en tablas de una base de datos externa Netezza, modificando su estructura (esquema).
| 1 | /*======================================================================*/ |
| 2 | /* Enter Customer Specific Target Source Connection Values - Netezza */ |
| 3 | /*======================================================================*/ |
| 4 | |
| 5 | %let user = |
| 6 | %let pass = |
| 7 | %let db = |
| 8 | %let server = |
| 1 | PROC SQL NOERRORSTOP; |
| 2 | |
| 3 | CONNECT TO NETEZZA (USER=&USER PASS=&PASS DB=&DB SERVER=&SERVER); |
| 4 | |
| 5 | /*** cdm_contact_history ***/ |
| 6 | EXECUTE(ALTER TABLE cdm_contact_history ADD control_group_flg CHAR(1) NULL) BY NETEZZA; |
| 7 | |
| 8 | /*** cdm_response_history ***/ |
| 9 | EXECUTE(ALTER TABLE cdm_response_history ADD properties_map_doc VARCHAR(4000) NULL) BY NETEZZA; |
| 10 | |
| 11 | /*** cdm_task_detail ***/ |
| 12 | EXECUTE(ALTER TABLE cdm_task_detail ADD control_group_action_nm VARCHAR(65) NULL) BY NETEZZA; |
| 13 | EXECUTE(ALTER TABLE cdm_task_detail ADD stratified_sampling_action_nm VARCHAR(65) NULL) BY NETEZZA; |
| 14 | EXECUTE(ALTER TABLE cdm_task_detail ADD segment_tests_flg CHAR(1) NULL) BY NETEZZA; |
| 15 | |
| 16 | EXECUTE (CREATE TABLE cdm_segment_test |
| 17 | ( |
| 18 | test_cd VARCHAR(60) NOT NULL , |
| 19 | task_version_id VARCHAR(36) NOT NULL , |
| 20 | task_id VARCHAR(36) NOT NULL , |
| 21 | test_nm VARCHAR(65) , |
| 22 | test_type_nm VARCHAR(10) , |
| 23 | test_enabled_flg CHAR(1) , |
| 24 | test_sizing_type_nm VARCHAR(65) , |
| 25 | test_cnt INTEGER , |
| 26 | test_pct NUMERIC(5,2) , |
| 27 | stratified_sampling_flg CHAR(1) , |
| 28 | stratified_samp_criteria_txt VARCHAR(1024) , |
| 29 | updated_dttm TIMESTAMP |
| 30 | ) |
| 31 | DISTRIBUTE ON (test_cd) |
| 32 | ) |
| 33 | BY NETEZZA; |
| 34 | |
| 35 | EXECUTE (CREATE TABLE cdm_segment_test_x_segment |
| 36 | ( |
| 37 | test_cd VARCHAR(60) NOT NULL , |
| 38 | task_version_id VARCHAR(36) NOT NULL , |
| 39 | task_id VARCHAR(36) NOT NULL , |
| 40 | segment_id VARCHAR(36) , |
| 41 | updated_dttm TIMESTAMP |
| 42 | ) |
| 43 | DISTRIBUTE ON (test_cd) |
| 44 | ) |
| 45 | BY NETEZZA; |
| 46 | |
| 47 | DISCONNECT FROM NETEZZA; |
| 48 | QUIT; |