DDL.sql 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. -- Active: 1766344152139@@db@5432@books
  2. -- Active: 1766344152139@@db@5432@postgres
  3. CREATE DATABASE Books;
  4. CREATE SCHEMA IF NOT EXISTS "ingestion"
  5. CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
  6. select * from cards;
  7. CREATE TABLE public.cards
  8. (
  9. id uuid NOT null DEFAULT uuid_generate_v1(),
  10. card_number varchar NOT NULL,
  11. card_holder varchar NOT NULL,
  12. expiration_date date NOT NULL,
  13. issuing_bank varchar NOT NULL,
  14. CONSTRAINT cards_pk PRIMARY KEY (id)
  15. );
  16. insert into public.cards (card_number, card_holder, expiration_date, issuing_bank) values
  17. ('4655', 'John Doe', '2025-12-31', 'Bank A'),
  18. ('5500000000000004', 'Jane Smith', '2024-11-30', 'Bank B'),
  19. ('340000000000009', 'Alice Johnson', '2026-10-31', 'Bank C');
  20. DROP Table cards;
  21. CREATE TABLE "ingestion".raw_transactions (
  22. id uuid NOT null DEFAULT uuid_generate_v1(),
  23. credit_card_id varchar NOT NULL,
  24. transaction_date date NOT NULL,
  25. merchant_name varchar NOT NULL,
  26. fx_rate decimal DEFAULT 1 NOT NULL,
  27. fx_amount decimal NOT NULL,
  28. isk_amount varchar NOT NULL,
  29. ingest_date date NOT null default CURRENT_DATE,
  30. raw JSON,
  31. CONSTRAINT cc_transactions_pk PRIMARY KEY (id)
  32. );
  33. -- Column comments
  34. COMMENT ON COLUMN "ingestion".cc_transactions.credit_card_id IS 'Card id';
  35. CREATE SCHEMA IF NOT EXISTS Staging;
  36. DROP TABLE IF EXISTS Staging.CreditCards;
  37. CREATE TABLE IF NOT EXISTS Staging.CreditCards
  38. (
  39. TransactionID VARCHAR(150),
  40. CardID VARCHAR(159),
  41. CardOwnerID VARCHAR(10),
  42. CardHolderID VARCHAR(10),
  43. IssuerBranch VARCHAR(151),
  44. TransactionDate VARCHAR(152),
  45. ProcessingDate VARCHAR(153),
  46. Amount VARCHAR(154),
  47. ForeignAmount VARCHAR(155),
  48. AmountOrginal VARCHAR(156),
  49. ForeignAmountOrginal VARCHAR(157),
  50. CurrencyCode VARCHAR(158),
  51. TransactionKey VARCHAR(200),
  52. TransactionKeyDescription VARCHAR(500),
  53. TransactionTypeCode VARCHAR(29),
  54. TransactionTypeCodeDescription VARCHAR(100),
  55. MCC VARCHAR(101),
  56. MerchantType VARCHAR(102),
  57. MerchantName VARCHAR(200),
  58. MerchantCity VARCHAR(103),
  59. MerchantCountryCode VARCHAR(10),
  60. AuthorizationNumber VARCHAR(40),
  61. DueDate VARCHAR(159),
  62. SlipNumber VARCHAR(160),
  63. Reconciliation VARCHAR(161),
  64. SettlementReferenceCode VARCHAR(162),
  65. BilledStatus VARCHAR(10),
  66. IcelandairLoyaltyClubTransaction VARCHAR(10),
  67. ECardTransaction VARCHAR(10),
  68. SysDTCreate VARCHAR(163),
  69. PanID VARCHAR(20),
  70. IssuingProcessor VARCHAR(51)
  71. );
  72. COPY Staging.CreditCards(TransactionID,CardId,CardOwnerID,CardHolderID,IssuerBranch,TransactionDate,ProcessingDate,Amount,ForeignAmount,AmountOrginal,ForeignAmountOrginal,CurrencyCode,TransactionKey,TransactionKeyDescription,TransactionTypeCode,TransactionTypeCodeDescription,Mcc,MerchantType,MerchantName,MerchantCity,MerchantCountryCode,AuthorizationNumber,DueDate,SlipNumber,Reconciliation,SettlementReferenceCode,BilledStatus,IcelandairLoyaltyClubTransaction,eCardTransaction,SysDTCreate,PanId,IssuingProcessor)
  73. FROM '/var/dataimport/creditcard.csv'
  74. DELIMITER ';'r
  75. CSV HEADER;
  76. #CREATE TABLE IF NOT EXISTS Staging.Accounts,
  77. SELECT table_schema, table_name
  78. FROM information_schema.tables
  79. WHERE table_type = 'BASE TABLE'
  80. ORDER BY table_schema, table_name;