Skip to content

Commit 1ea8dfa

Browse files
authored
Bulk Loading Northwind CSV o Virtuoso
Using the CSV Bulk Loader to create Northwind Database Tables in Virtuoso
1 parent 70907ff commit 1ea8dfa

File tree

1 file changed

+201
-0
lines changed

1 file changed

+201
-0
lines changed

Diff for: bulk-loading-northwind-csv.sql

+201
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,201 @@
1+
-- Create Filesystem Mapping Files to control Virtuoso Table Name preferences via the following files
2+
-- in ~virtuoso/vad directory
3+
4+
-- "csv_bl"."Northwind"."territories > territories.tb
5+
-- "csv_bl"."Northwind"."suppliers" > suppliers.tb
6+
-- "csv_bl"."Northwind"."shippers" > shippers.tb
7+
-- "csv_bl"."Northwind"."regions" > regions.tb
8+
-- "csv_bl"."Northwind"."products" > products.tb
9+
-- "csv_bl"."Northwind"."orders" > orders.tb
10+
-- "csv_bl"."Northwind"."order_details" > order_details.tb
11+
-- "csv_bl"."Northwind"."employee_territories" > employee_territories.tb
12+
-- "csv_bl"."Northwind"."employees" > employees.tb
13+
-- "csv_bl"."Northwind"."customers" > customers.tb
14+
-- "csv_bl"."Northwind"."categories" > categories.tb
15+
16+
-- Cleanup
17+
18+
DROP TABLE "csv_bl"."Northwind"."customers" ;
19+
DROP TABLE "csv_bl"."Northwind"."order_details" ;
20+
DROP TABLE "csv_bl"."Northwind"."orders" ;
21+
DROP TABLE "csv_bl"."Northwind"."products" ;
22+
DROP TABLE "csv_bl"."Northwind"."categories" ;
23+
DROP TABLE "csv_bl"."Northwind"."suppliers" ;
24+
DROP TABLE "csv_bl"."Northwind"."employee_territories" ;
25+
DROP TABLE "csv_bl"."Northwind"."territories";
26+
DROP TABLE "csv_bl"."Northwind"."employees" ;
27+
DROP TABLE "csv_bl"."Northwind"."regions" ;
28+
DROP TABLE "csv_bl"."Northwind"."shippers" ;
29+
30+
-- Clear DB.DBA.csv_load_list Table
31+
32+
-- DELETE FROM DB.DBA.csv_load_list WHERE cl_table LIKE '%csv_bl.Northwind%' ;
33+
34+
DELETE FROM DB.DBA.csv_load_list ;
35+
36+
SELECT * FROM DB.DBA.csv_load_list WHERE cl_table LIKE '%csv_bl.Northwind%' ;
37+
38+
-- Register CSV documents for batch loading
39+
40+
41+
CSV_REGISTER('../vad', 'categories.csv') ;
42+
CSV_REGISTER('../vad', 'customers.csv') ;
43+
CSV_REGISTER('../vad', 'employees.csv') ;
44+
CSV_REGISTER('../vad', 'employee_territories.csv') ;
45+
CSV_REGISTER('../vad', 'order_details.csv') ;
46+
CSV_REGISTER('../vad', 'orders.csv') ;
47+
CSV_REGISTER('../vad', 'products.csv') ;
48+
CSV_REGISTER('../vad', 'regions.csv') ;
49+
CSV_REGISTER('../vad', 'shippers.csv') ;
50+
CSV_REGISTER('../vad', 'suppliers.csv') ;
51+
CSV_REGISTER('../vad', 'territories.csv') ;
52+
53+
-- Check that DB.DBA.csv_load_list table contains CSV documents to loaded
54+
55+
SELECT * FROM "DB"."DBA"."csv_load_list" ;
56+
57+
58+
-- Run CSV Bulk Loader
59+
60+
CSV_LOADER_RUN () ;
61+
62+
63+
-- Check that DB.DBA.csv_load_list table show changed load stated from 2 to 0
64+
65+
SELECT * FROM "DB"."DBA"."csv_load_list" ;
66+
67+
68+
-- Confirm Tables have been successfully created by CSV Bulk Loader
69+
70+
SELECT * FROM "csv_bl"."Northwind"."categories" ;
71+
SELECT * FROM "csv_bl"."Northwind"."customers" ;
72+
SELECT * FROM "csv_bl"."Northwind"."employees" ;
73+
SELECT * FROM "csv_bl"."Northwind"."employee_territories" ;
74+
SELECT * FROM "csv_bl"."Northwind"."order_details" ;
75+
SELECT * FROM "csv_bl"."Northwind"."orders" ;
76+
SELECT * FROM "csv_bl"."Northwind"."products" ;
77+
SELECT * FROM "csv_bl"."Northwind"."regions" ;
78+
SELECT * FROM "csv_bl"."Northwind"."shippers" ;
79+
SELECT * FROM "csv_bl"."Northwind"."suppliers" ;
80+
SELECT * FROM "csv_bl"."Northwind"."territories" ;
81+
82+
-- ADD Foreign Keys to each table.
83+
-- Works on the assumption of Northwind CSV files in ~virtuoso/vad directory (folder) .
84+
85+
-- ATTACH CATEGORIES TABLE
86+
87+
ALTER TABLE "csv_bl"."Northwind"."categories"
88+
MODIFY PRIMARY KEY ("categoryID") ;
89+
90+
SELECT TOP 5 * FROM "csv_bl"."Northwind"."categories" ;
91+
92+
-- ALTER CUSTOMERS TABLE
93+
94+
ALTER TABLE "csv_bl"."Northwind"."customers"
95+
MODIFY PRIMARY KEY ("customerID") ;
96+
97+
SELECT TOP 5 * FROM "csv_bl"."Northwind"."customers" ;
98+
99+
100+
101+
-- ALTER EMPLOYEES TABLE
102+
103+
104+
ALTER TABLE "csv_bl"."Northwind"."employees"
105+
MODIFY PRIMARY KEY ("employeeID") ;
106+
107+
ALTER TABLE "csv_bl"."Northwind"."employees"
108+
ADD FOREIGN KEY ("employeeID") REFERENCES "csv_bl"."Northwind"."employees" ("employeeID") ;
109+
110+
SELECT TOP 5 * FROM "csv_bl"."Northwind"."employees" ;
111+
112+
113+
-- ALTER EMPLOYEE TERRITORIES TABLE
114+
115+
ALTER TABLE "csv_bl"."Northwind"."employee_territories"
116+
MODIFY PRIMARY KEY ("employeeID","territoryID");
117+
118+
ALTER TABLE "csv_bl"."Northwind"."employee_territories"
119+
ADD FOREIGN KEY ("employeeID") REFERENCES "csv_bl"."Northwind"."employees" ("employeeID") ;
120+
121+
SELECT TOP 5 * FROM "csv_bl"."Northwind"."employee_territories" ;
122+
123+
124+
-- ALTER ORDERS TABLE
125+
126+
127+
ALTER TABLE "csv_bl"."Northwind"."orders"
128+
MODIFY PRIMARY KEY ("orderID");
129+
130+
ALTER TABLE "csv_bl"."Northwind"."orders"
131+
ADD FOREIGN KEY ("employeeID") REFERENCES "csv_bl"."Northwind"."employees" ("employeeID") ;
132+
133+
SELECT TOP 5 * FROM "csv_bl"."Northwind"."orders" ;
134+
135+
-- ALTER SUPPLIERS TABLE
136+
137+
ALTER TABLE "csv_bl"."Northwind"."suppliers"
138+
MODIFY PRIMARY KEY ("supplierID");
139+
140+
SELECT TOP 5 * FROM "csv_bl"."Northwind"."suppliers" ;
141+
142+
-- ALTER PRODUCTS TABLE
143+
144+
145+
ALTER TABLE "csv_bl"."Northwind"."products"
146+
MODIFY PRIMARY KEY ("productID");
147+
148+
ALTER TABLE "csv_bl"."Northwind"."products"
149+
ADD FOREIGN KEY ("supplierID") REFERENCES "csv_bl"."Northwind"."suppliers" ("supplierID") ;
150+
151+
ALTER TABLE "csv_bl"."Northwind"."products"
152+
ADD FOREIGN KEY ("categoryID") REFERENCES "csv_bl"."Northwind"."categories" ("categoryID") ;
153+
154+
SELECT TOP 5 * FROM "csv_bl"."Northwind"."products" ;
155+
156+
157+
-- ALTER ORDERS_DETAILS TABLE
158+
159+
160+
-- ALTER TABLE "csv_bl"."Northwind"."order_details" MODIFY PRIMARY KEY ("orderID, productID");
161+
162+
ALTER TABLE "csv_bl"."Northwind"."order_details"
163+
MODIFY PRIMARY KEY ("orderID","productID") ;
164+
165+
ALTER TABLE "csv_bl"."Northwind"."order_details"
166+
ADD FOREIGN KEY ("orderID") REFERENCES "csv_bl"."Northwind"."orders" ("orderID") ;
167+
168+
ALTER TABLE "csv_bl"."Northwind"."order_details"
169+
ADD FOREIGN KEY ("productID") REFERENCES "csv_bl"."Northwind"."products" ("productID") ;
170+
171+
SELECT TOP 5 * FROM "csv_bl"."Northwind"."order_details" ;
172+
173+
174+
175+
-- ALTER REGIONS TABLE
176+
177+
ALTER TABLE "csv_bl"."Northwind"."regions"
178+
MODIFY PRIMARY KEY ("regionID");
179+
180+
SELECT TOP 5 * FROM "csv_bl"."Northwind"."regions" ;
181+
182+
183+
-- ALTER SHIPPERS TABLE
184+
185+
ALTER TABLE "csv_bl"."Northwind"."shippers"
186+
MODIFY PRIMARY KEY ("shipperID");
187+
188+
SELECT TOP 5 * FROM "csv_bl"."Northwind"."shippers" ;
189+
190+
191+
-- ALTER TERRITORIES TABLE
192+
193+
ALTER TABLE "csv_bl"."Northwind"."territories"
194+
MODIFY PRIMARY KEY ("territoryID");
195+
196+
ALTER TABLE "csv_bl"."Northwind"."regions"
197+
ADD FOREIGN KEY ("regionID") REFERENCES "csv_bl"."Northwind"."regions" ("regionID") ;
198+
199+
SELECT TOP 5 * FROM "csv_bl"."Northwind"."territories" ;
200+
201+

0 commit comments

Comments
 (0)