0% found this document useful (0 votes)
17 views7 pages

Schema ETL ESB Prediction

Uploaded by

vameboj718
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views7 pages

Schema ETL ESB Prediction

Uploaded by

vameboj718
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

Schema ETL ESB Prediction

Schema Tabel & Kolom yang diperlukan (Tabel Source)

1. tr_saleshead
a. branchID
b. salesDate
c. statusID
d. subtotal
e. discountTotal
f. menuDiscountTotal
g. salesNum
2. tr_salespayment
a. salesNum
b. paymentMethodID
c. paymentAmount
3. ms_paymentmethod
a. paymentMethodID
b. paymentMethodTypeID
4. tr_saleslink
a. salesNum
b. linkSalesNum
5. ms_branch
a. branchID
b. branchCode
c. branchName

DDL Tabel Source

1. tr_saleshead
CREATE TABLE `tr_saleshead` (
`salesNum` varchar(20) NOT NULL,
`billNum` varchar(20) DEFAULT NULL,
`bookNum` varchar(20) DEFAULT NULL,
`queueNum` varchar(10) DEFAULT NULL,
`salesDate` date DEFAULT NULL,
`salesDateIn` datetime NOT NULL,
`salesDateOut` datetime DEFAULT NULL,
`branchID` int(11) NOT NULL,
`tenantID` int(11) DEFAULT NULL,
`memberID` varchar(20) DEFAULT NULL,
`employeeCode` varchar(50) NOT NULL,
`employeeName` varchar(100) DEFAULT NULL,
`employeeType` varchar(50) DEFAULT NULL,
`memberCode` varchar(20) DEFAULT NULL,
`tableID` int(11) NOT NULL,
`visitPurposeID` int(11) NOT NULL,
`visitorTypeID` int(11) DEFAULT NULL,
`questionID` int(11) DEFAULT '0',
`paxTotal` int(11) NOT NULL,
`subtotal` decimal(20,4) NOT NULL,
`discountTotal` decimal(20,4) NOT NULL,
`menuDiscountTotal` decimal(20,4) NOT NULL,
`promotionDiscount` decimal(20,4) NOT NULL,
`voucherDiscountTotal` decimal(20,4) DEFAULT NULL,
`otherTaxTotal` decimal(20,4) NOT NULL,
`vatTotal` decimal(20,4) NOT NULL,
`otherVatTotal` decimal(20,4) DEFAULT '0.0000',
`deliveryCost` decimal(20,4) DEFAULT NULL,
`orderFee` decimal(20,4) DEFAULT NULL,
`grandTotal` decimal(20,4) NOT NULL,
`voucherTotal` decimal(20,4) NOT NULL,
`roundingTotal` decimal(20,4) DEFAULT NULL,
`paymentTotal` decimal(20,4) NOT NULL,
`billingPrintCount` int(11) NOT NULL,
`paymentPrintCount` int(11) NOT NULL,
`additionalInfo` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT
NULL,
`remarks` varchar(200) DEFAULT NULL,
`promotionID` int(11) DEFAULT NULL,
`promotionVoucherCode` varchar(50) DEFAULT NULL,
`flagInclusive` int(1) DEFAULT NULL,
`transactionModeID` int(11) DEFAULT NULL,
`externalMembershipTypeID` varchar(20) DEFAULT NULL,
`flagExternalAPI` int(11) DEFAULT NULL,
`flagExternalMemberID` varchar(50) DEFAULT NULL,
`flagExternalMemberPhone` varchar(20) DEFAULT NULL,
`flagExternalCardID` varchar(50) DEFAULT NULL,
`externalMemberName` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
DEFAULT NULL,
`externalTransID` varchar(50) DEFAULT NULL,
`externalCancelTransID` varchar(50) DEFAULT NULL,
`terminalID` varchar(50) DEFAULT NULL,
`printEsoFsQr` int(11) DEFAULT '0',
`statusID` int(11) NOT NULL,
`flagManualUpdate` tinyint(1) DEFAULT NULL,
`createdBy` varchar(100) NOT NULL,
`editedBy` varchar(100) DEFAULT NULL,
`editedDate` datetime DEFAULT NULL,
`syncDate` datetime DEFAULT NULL,
PRIMARY KEY (`salesNum`),
KEY `idx_billNum_tr_saleshead` (`billNum`),
KEY `idx_tr_saleshead_statusid_branchid_salesdate` (`statusID`,`branchID`,`salesDate`),
KEY `idx_tr_saleshead_memberID` (`memberID`),
KEY `idx_tr_saleshead_memberCode` (`memberCode`),
KEY `tr_saleshead_salesDate` (`salesDate`),
KEY `idx_tr_saleshead_salesDateOut` (`salesDateOut`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;

2. tr_salespayment
CREATE TABLE `tr_salespayment` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`localID` int(11) DEFAULT NULL,
`salesNum` varchar(50) NOT NULL,
`paymentMethodID` int(11) NOT NULL,
`voucherCode` varchar(50) NOT NULL,
`voucherCategoryID` int(11) DEFAULT NULL,
`notes` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
`cardNumber` varchar(20) NOT NULL,
`bankName` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`accountName` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
`selfOrderID` varchar(50) DEFAULT NULL,
`verificationCode` varchar(100) NOT NULL,
`traceNumber` varchar(50) DEFAULT NULL,
`canceledVerificationCode` varchar(100) DEFAULT NULL,
`flagExternalVoucherAPI` int(1) DEFAULT NULL,
`externalVoucherCode` varchar(50) DEFAULT NULL,
`externalTransactionId` varchar(50) DEFAULT NULL,
`externalBatchNumber` varchar(50) DEFAULT NULL,
`externalCanceledTransactionId` varchar(50) DEFAULT NULL,
`externalCanceledBatchNumber` varchar(50) DEFAULT NULL,
`coaNo` varchar(20) NOT NULL,
`previousDepositBalance` decimal(20,4) DEFAULT NULL,
`merchantDiscountRate` decimal(20,4) DEFAULT '0.0000',
`paymentAmount` decimal(20,4) NOT NULL,
`fullPaymentAmount` decimal(20,4) DEFAULT NULL,
`syncDate` datetime DEFAULT NULL,
`edcTerminalID` varchar(50) DEFAULT NULL,
PRIMARY KEY (`ID`),
KEY `tr_salespayment_salesNum` (`salesNum`),
KEY `tr_salespayment_paymentMethodID` (`paymentMethodID`),
KEY `idx_tr_salespayment_selfOrderID` (`selfOrderID`)
) ENGINE=InnoDB AUTO_INCREMENT=8250336 DEFAULT CHARSET=utf8
ROW_FORMAT=DYNAMIC;

3. ms_paymentmethod
CREATE TABLE `ms_paymentmethod` (
`paymentMethodID` int(11) NOT NULL AUTO_INCREMENT,
`paymentMethodTypeID` int(11) NOT NULL,
`voucherTypeID` int(11) DEFAULT NULL,
`voucherSourceID` int(11) DEFAULT NULL,
`voucherCategoryID` int(11) DEFAULT NULL,
`paymentMethodName` varchar(50) NOT NULL,
`paymentMethodCode` varchar(50) DEFAULT NULL,
`parentID` int(11) NOT NULL,
`coaNo` varchar(20) NOT NULL,
`merchantDiscountRate` decimal(20,4) NOT NULL DEFAULT '0.0000',
`printedCount` int(11) NOT NULL,
`fixedAmount` decimal(20,4) DEFAULT NULL,
`posExternalPaymentID` varchar(10) DEFAULT NULL,
`cardNumberValidationTypeID` int(11) DEFAULT NULL,
`flagMandatoryCardNumber` tinyint(1) DEFAULT NULL,
`flagMandatoryVerificationCode` tinyint(1) DEFAULT NULL,
`flagOpenCashdrawer` tinyint(1) NOT NULL DEFAULT '0',
`flagAuthorization` tinyint(1) NOT NULL DEFAULT '0',
`flagUseEmployeeLimit` tinyint(1) DEFAULT NULL,
`flagActive` tinyint(1) NOT NULL DEFAULT '0',
`flagAllVisitPurpose` tinyint(1) DEFAULT '0',
`flagIncludeTotalSpent` tinyint(1) DEFAULT NULL,
`depositSourceID` int(11) DEFAULT NULL,
`buttonColor` varchar(50) DEFAULT '',
`createdBy` varchar(100) NOT NULL,
`createdDate` datetime NOT NULL,
`editedBy` varchar(100) DEFAULT NULL,
`editedDate` datetime DEFAULT NULL,
PRIMARY KEY (`paymentMethodID`),
KEY `ms_paymentmethod_paymentMethodTypeID` (`paymentMethodTypeID`),
KEY `idx_ms_paymentmethod_paymentmethodty_paymentmethodid`
(`paymentMethodTypeID`,`paymentMethodID`)
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;

4. tr_saleslink
CREATE TABLE `tr_saleslink` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`localID` int(11) DEFAULT NULL,
`salesNum` varchar(50) NOT NULL,
`linkSalesNum` varchar(50) NOT NULL,
`syncDate` datetime DEFAULT NULL,
PRIMARY KEY (`ID`),
KEY `tr_saleslink_salesNum` (`salesNum`),
KEY `idx_tr_saleslink_linkSalesNum` (`linkSalesNum`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;

5. ms_branch
CREATE TABLE `ms_branch` (
`branchID` int(11) NOT NULL AUTO_INCREMENT,
`branchTypeID` int(11) NOT NULL,
`branchCode` varchar(20) DEFAULT NULL,
`extBranchCode` varchar(20) DEFAULT NULL,
`branchName` varchar(50) NOT NULL,
`branchNameESBOrder` varchar(50) DEFAULT NULL,
`address` varchar(200) DEFAULT NULL,
`latitude` decimal(11,8) DEFAULT NULL,
`longitude` decimal(11,8) DEFAULT NULL,
`phone` varchar(20) DEFAULT NULL,
`postalCode` varchar(10) DEFAULT NULL,
`printingHeader` varchar(500) NOT NULL,
`printingFooter` varchar(500) NOT NULL,
`printingCheckerFooter` varchar(500) DEFAULT NULL,
`additionalTaxName` varchar(100) NOT NULL,
`additionalTaxValue` decimal(18,2) NOT NULL,
`flagOtherTaxVat` tinyint(1) NOT NULL,
`image` longtext,
`flagHeaderImageOriginalSize` smallint(1) NOT NULL DEFAULT '0',
`imageFooter` longtext,
`flagFooterImageOriginalSize` smallint(1) NOT NULL DEFAULT '0',
`selfOrderBanner` text,
`menuTemplateID` int(11) DEFAULT NULL,
`posModeID` int(11) DEFAULT NULL,
`taxName` varchar(100) NOT NULL,
`taxValue` decimal(18,2) NOT NULL,
`vatName` varchar(50) DEFAULT NULL,
`vatSubject` tinyint(1) DEFAULT NULL,
`posTaxCalculationID` int(11) DEFAULT NULL,
`posOtherTaxCalculationID` int(11) DEFAULT NULL,
`timezoneID` int(11) DEFAULT NULL,
`autoEmailUsername` text,
`flagActive` tinyint(1) NOT NULL DEFAULT '0',
`openDate` datetime DEFAULT NULL,
`closeDate` datetime DEFAULT NULL,
`serverOnlyCount` int(11) DEFAULT '0',
`cashierCount` int(11) DEFAULT '0',
`orderCount` int(11) DEFAULT '0',
`tabCount` int(11) DEFAULT '0',
`brandID` int(11) DEFAULT NULL,
`districtID` int(11) DEFAULT NULL,
`subDistrictID` int(11) DEFAULT NULL,
`posVersion` varchar(50) DEFAULT NULL,
`odsVersion` varchar(50) DEFAULT NULL,
`kioskVersion` varchar(50) DEFAULT NULL,
`tableSideVersion` varchar(50) DEFAULT NULL,
`createdBy` varchar(100) NOT NULL,
`createdDate` datetime NOT NULL,
`editedBy` varchar(100) DEFAULT NULL,
`editedDate` datetime DEFAULT NULL,
PRIMARY KEY (`branchID`)
) ENGINE=InnoDB AUTO_INCREMENT=65 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;

DDL Tabel Target


1. fact_model_performance
CREATE TABLE `fact_model_performance` (
`con` varchar(100) NOT NULL,
`dbName` varchar(100) NOT NULL,
`trainingDate` date NOT NULL,
`modelName` varchar(100) NOT NULL,
`mae` decimal(20,6) DEFAULT NULL,
`mse` decimal(20,6) DEFAULT NULL,
`r2` decimal(20,6) DEFAULT NULL,
`trainingTime` decimal(20,2) DEFAULT NULL,
`countRow` bigint(20) DEFAULT NULL,
`countBranch` int(11) DEFAULT NULL,
`queryExecution` decimal(20,2) DEFAULT NULL,
`totalTrainingTime` decimal(20,2) DEFAULT NULL,
`createdAt` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`updatedAt` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`con`,`dbName`,`trainingDate`,`modelName`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

2. fact_sales_prediction
CREATE TABLE `fact_sales_prediction` (
`con` varchar(100) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
`dbName` varchar(100) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
`salesDate` date NOT NULL,
`branchID` int(11) NOT NULL,
`netSalesPred` decimal(22,2) DEFAULT NULL,
`createdAt` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`updatedAt` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`con`,`dbName`,`salesDate`,`branchID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
/*!50100 PARTITION BY RANGE (month(`salesDate`))
(PARTITION P1 VALUES LESS THAN (2) ENGINE = InnoDB,
PARTITION P2 VALUES LESS THAN (3) ENGINE = InnoDB,
PARTITION P3 VALUES LESS THAN (4) ENGINE = InnoDB,
PARTITION P4 VALUES LESS THAN (5) ENGINE = InnoDB,
PARTITION P5 VALUES LESS THAN (6) ENGINE = InnoDB,
PARTITION P6 VALUES LESS THAN (7) ENGINE = InnoDB,
PARTITION P7 VALUES LESS THAN (8) ENGINE = InnoDB,
PARTITION P8 VALUES LESS THAN (9) ENGINE = InnoDB,
PARTITION P9 VALUES LESS THAN (10) ENGINE = InnoDB,
PARTITION P10 VALUES LESS THAN (11) ENGINE = InnoDB,
PARTITION P11 VALUES LESS THAN (12) ENGINE = InnoDB,
PARTITION P12 VALUES LESS THAN (13) ENGINE = InnoDB) */;

3. fact_sales_actual
CREATE TABLE `fact_sales_actual` (
`con` varchar(100) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
`dbName` varchar(100) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
`salesDate` date NOT NULL,
`branchID` int(11) NOT NULL,
`netSales` decimal(22,2) DEFAULT NULL,
`createdAt` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`updatedAt` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`con`,`dbName`,`salesDate`,`branchID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

4. dim_branch
CREATE TABLE `dim_branch` (
`dbName` varchar(100) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
`companyCode` varchar(100) CHARACTER SET latin1 COLLATE latin1_swedish_ci DEFAULT NULL,
`companyName` varchar(100) CHARACTER SET latin1 COLLATE latin1_swedish_ci DEFAULT NULL,
`branchID` int(11) NOT NULL,
`branchCode` varchar(50) CHARACTER SET latin1 COLLATE latin1_swedish_ci DEFAULT NULL,
`branchName` varchar(250) CHARACTER SET latin1 COLLATE latin1_swedish_ci DEFAULT NULL,
`createdAt` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`updatedAt` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`dbName`,`branchID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Script Notebook Python ETL ESB Prediction: esb_prediction.py

You might also like