Attention : Este código requiere privilegios de administrador.
El script utiliza una conexión pass-through a través de PROC SQL para conectarse a una base de datos Netezza. Ejecuta instrucciones DDL (Data Definition Language) para alterar tres tablas existentes (cdm_contact_history, cdm_response_history, cdm_task_detail) agregando nuevas columnas. Además, crea dos nuevas tablas (cdm_segment_test y cdm_segment_test_x_segment) necesarias para el modelo de datos actualizado. La información de conexión se parametriza mediante variables macro.
Análisis de datos
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 Bloque de código
Macro
Explicación : Este bloque define variables macro para almacenar la información de conexión (usuario, contraseña, nombre de la base de datos, servidor) a la base de datos Netezza. Esto permite parametrizar el script sin modificar el código principal.
¡Copiado!
/*======================================================================*/
/* Enter Customer Specific Target Source Connection Values - Netezza */
/*======================================================================*/
%let user = <user>; /* Netezza User */
%let pass = <password>; /* Netezza Password */
%let db = <database>; /* Netezza Database */
%let server = <server>; /* Netezza Server */
Explicación : Este bloque utiliza el procedimiento PROC SQL para conectarse a la base de datos Netezza usando las macros definidas previamente. Luego ejecuta comandos SQL nativos a través de la cláusula EXECUTE ... BY NETEZZA para alterar y crear tablas. La opción NOERRORSTOP asegura que el script continúe incluso si un comando falla. La conexión se cierra posteriormente con DISCONNECT.
¡Copiado!
PROC SQL NOERRORSTOP;
CONNECT TO NETEZZA (USER=&USER PASS=&PASS DB=&DB SERVER=&SERVER);
/*** cdm_contact_history ***/
EXECUTE(ALTER TABLE cdm_contact_history ADD control_group_flg CHAR(1) NULL) BY NETEZZA;
/*** cdm_response_history ***/
EXECUTE(ALTER TABLE cdm_response_history ADD properties_map_doc VARCHAR(4000) NULL) BY NETEZZA;
/*** cdm_task_detail ***/
EXECUTE(ALTER TABLE cdm_task_detail ADD control_group_action_nm VARCHAR(65) NULL) BY NETEZZA;
EXECUTE(ALTER TABLE cdm_task_detail ADD stratified_sampling_action_nm VARCHAR(65) NULL) BY NETEZZA;
EXECUTE(ALTER TABLE cdm_task_detail ADD segment_tests_flg CHAR(1) NULL) BY NETEZZA;
EXECUTE (CREATE TABLE cdm_segment_test
(
test_cd VARCHAR(60) NOT NULL ,
task_version_id VARCHAR(36) NOT NULL ,
task_id VARCHAR(36) NOT NULL ,
test_nm VARCHAR(65) ,
test_type_nm VARCHAR(10) ,
test_enabled_flg CHAR(1) ,
test_sizing_type_nm VARCHAR(65) ,
test_cnt INTEGER ,
test_pct NUMERIC(5,2) ,
stratified_sampling_flg CHAR(1) ,
stratified_samp_criteria_txt VARCHAR(1024) ,
updated_dttm TIMESTAMP
)
DISTRIBUTE ON (test_cd)
)
BY NETEZZA;
EXECUTE (CREATE TABLE cdm_segment_test_x_segment
(
test_cd VARCHAR(60) NOT NULL ,
task_version_id VARCHAR(36) NOT NULL ,
task_id VARCHAR(36) NOT NULL ,
segment_id VARCHAR(36) ,
updated_dttm TIMESTAMP
)
DISTRIBUTE ON (test_cd)
)
BY NETEZZA;
DISCONNECT FROM NETEZZA;
QUIT;
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;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
« 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). »
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.