-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathExternal_Tables.sql
More file actions
71 lines (60 loc) · 1.94 KB
/
External_Tables.sql
File metadata and controls
71 lines (60 loc) · 1.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
-- External Tables
-- This handles header rows, NULL values, and quoted fields
CREATE FILE FORMAT csv_format
TYPE = 'CSV'
FIELD_OPTIONALLY_ENCLOSED_BY = '"'
SKIP_HEADER = 1
NULL_IF = ('NULL', '');
CREATE OR REPLACE EXTERNAL TABLE ext_accounts
WITH LOCATION = @mystage/accounts/
FILE_FORMAT = csv_format
AUTO_REFRESH = TRUE
PATTERN = '.*accounts.*\\.csv$'
AS
SELECT $1::INT AS account_number,
$2::DECIMAL AS camount,
$3::STRING AS account_name,
$4::STRING AS account_type,
$5::DATE AS reference_date
FROM @mystage/accounts/
WHERE reference_date > (SELECT MAX(reference_date) FROM staging_facts);
CREATE OR REPLACE EXTERNAL TABLE ext_loans
WITH LOCATION = @mystage/loans/
FILE_FORMAT = csv_format
AUTO_REFRESH = TRUE
PATTERN = '.*loans.*\\.csv$'
AS
SELECT $1::INT AS loan_id,
$2::INT AS accounts_number,
$3::STRING AS customer,
$4::STRING AS customer_type,
$5::STRING AS loan_type,
$6::STRING AS country,
$7::DECIMAL(18, 2) AS amount,
$8::STRING AS currency,
$9::DECIMAL(10, 4) AS exchange_rate,
$10::DATE AS start_date,
$11::DATE AS maturity_date,
$12::DATE AS reference_date
FROM @mystage/loans/
WHERE reference_date > (SELECT MAX(reference_date) FROM staging_facts);
CREATE OR REPLACE EXTERNAL TABLE ext_deposits
WITH LOCATION = @mystage/deposits/
FILE_FORMAT = csv_format
AUTO_REFRESH = TRUE
PATTERN = '.*deposits.*\\.csv$'
AS
SELECT $1::INT AS deposit_id,
$2::INT AS accounts_number,
$3::VARCHAR(50) AS customer,
$4::VARCHAR(50) AS customer_type,
$5::VARCHAR(50) AS deposit_type,
$6::VARCHAR(50) AS country,
$7::DECIMAL(18, 2) AS amount,
$8::VARCHAR(50) AS currency,
$9::DECIMAL(10, 4) AS exchange_rate,
$10::DATE AS start_date,
$11::DATE AS maturity_date,
$12::DATE AS reference_date
FROM @mystage/deposits/
WHERE reference_date > (SELECT MAX(reference_date) FROM staging_facts);