Veröffentlicht am :

Änderung des Netezza-Datenbankschemas für CI360

Dieser Code ist auch verfügbar auf: English Español Français
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!
1/*======================================================================*/
2/* Enter Customer Specific Target Source Connection Values - Netezza */
3/*======================================================================*/
4 
5%let user = ; /* Netezza User */
6%let pass = ; /* Netezza Password */
7%let db = ; /* Netezza Database */
8%let server = ; /* Netezza Server */
2 Codeblock
PROC SQL
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!
1PROC SQL NOERRORSTOP;
2 
3CONNECT TO NETEZZA (USER=&USER PASS=&PASS DB=&DB SERVER=&SERVER);
4 
5/*** cdm_contact_history ***/
6EXECUTE(ALTER TABLE cdm_contact_history ADD control_group_flg CHAR(1) NULL) BY NETEZZA;
7 
8/*** cdm_response_history ***/
9EXECUTE(ALTER TABLE cdm_response_history ADD properties_map_doc VARCHAR(4000) NULL) BY NETEZZA;
10 
11/*** cdm_task_detail ***/
12EXECUTE(ALTER TABLE cdm_task_detail ADD control_group_action_nm VARCHAR(65) NULL) BY NETEZZA;
13EXECUTE(ALTER TABLE cdm_task_detail ADD stratified_sampling_action_nm VARCHAR(65) NULL) BY NETEZZA;
14EXECUTE(ALTER TABLE cdm_task_detail ADD segment_tests_flg CHAR(1) NULL) BY NETEZZA;
15 
16EXECUTE (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)
31DISTRIBUTE ON (test_cd)
32)
33BY NETEZZA;
34 
35EXECUTE (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)
43DISTRIBUTE ON (test_cd)
44)
45BY NETEZZA;
46 
47DISCONNECT FROM NETEZZA;
48QUIT;
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.
Banner
Expertenrat
Expert
Simon
Expert SAS et fondateur.
« 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. »