Attention : Dieser Code erfordert Administratorrechte.
Das Skript verwendet eine Pass-Through-Verbindung über PROC SQL, um sich mit einer Netezza-Datenbank zu verbinden. Es führt DDL-Anweisungen (Data Definition Language) aus, um drei bestehende Tabellen (cdm_contact_history, cdm_response_history, cdm_task_detail) durch Hinzufügen neuer Spalten zu ändern. Zusätzlich werden zwei neue Tabellen (cdm_segment_test und cdm_segment_test_x_segment) erstellt, die für das aktualisierte Datenmodell erforderlich sind. Die Verbindungsinformationen werden über Makrovariablen parametriert.
Datenanalyse
Type : EXTERNE
Das Skript verwendet keine SAS-Daten. Es arbeitet ausschließlich mit Tabellen einer externen Netezza-Datenbank und ändert deren Struktur (Schema).
1 Codeblock
Macro
Erklärung : Dieser Block definiert Makrovariablen zum Speichern der Verbindungsinformationen (Benutzer, Passwort, Datenbankname, Server) zur Netezza-Datenbank. Dies ermöglicht die Parametrierung des Skripts, ohne den Hauptcode ändern zu müssen.
Kopiert!
/*======================================================================*/
/* 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 */
Erklärung : Dieser Block verwendet die PROC SQL-Prozedur, um sich über die zuvor definierten Makros mit der Netezza-Datenbank zu verbinden. Anschließend werden native SQL-Befehle über die Klausel EXECUTE ... BY NETEZZA ausgeführt, um Tabellen zu ändern und zu erstellen. Die Option NOERRORSTOP stellt sicher, dass das Skript auch dann fortgesetzt wird, wenn ein Befehl fehlschlägt. Die Verbindung wird anschließend mit DISCONNECT geschlossen.
Kopiert!
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;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
« Bei der Anpassung einer Netezza-Datenbank für SAS Customer Intelligence 360 ist die Nutzung von SQL Pass-Through (EXECUTE(...) BY NETEZZA) der effizienteste Weg. Da Netezza eine MPP-Architektur (Massively Parallel Processing) nutzt, ermöglicht dieser Ansatz die direkte Verwendung nativer Befehle wie DISTRIBUTE ON, was für die Abfrageleistung entscheidend ist. »
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.