Labels

admin (1) aix (1) alert (1) always-on (2) Architecture (1) aws (3) Azure (1) backup (3) BI-DWH (10) Binary (3) Boolean (1) C# (1) cache (1) casting (3) cdc (1) certificate (1) checks (1) cloud (3) cluster (1) cmd (7) collation (1) columns (1) compilation (1) configurations (7) Connection-String (2) connections (6) constraint (6) copypaste (2) cpu (2) csv (3) CTE (1) data-types (1) datetime (23) db (547) DB2 (1) deadlock (2) Denali (7) device (6) dotNet (5) dynamicSQL (11) email (5) encoding (1) encryption (4) errors (124) excel (1) ExecutionPlan (10) extended events (1) files (7) FIPS (1) foreign key (1) fragmentation (1) functions (1) GCP (2) gMSA (2) google (2) HADR (1) hashing (3) in-memory (1) index (3) indexedViews (2) insert (3) install (10) IO (1) isql (6) javascript (1) jobs (11) join (2) LDAP (2) LinkedServers (8) Linux (15) log (6) login (1) maintenance (3) mariadb (1) memory (4) merge (3) monitoring (4) MSA (2) mssql (444) mssql2005 (5) mssql2008R2 (20) mssql2012 (2) mysql (36) MySQL Shell (5) network (1) NoSQL (1) null (2) numeric (9) object-oriented (1) offline (1) openssl (1) Operating System (4) oracle (7) ORDBMS (1) ordering (2) Outer Apply (1) Outlook (1) page (1) parameters (2) partition (1) password (1) Performance (103) permissions (10) pivot (3) PLE (1) port (4) PostgreSQL (14) profiler (1) RDS (3) read (1) Replication (12) restore (4) root (1) RPO (1) RTO (1) SAP ASE (48) SAP RS (20) SCC (4) scema (1) script (8) security (10) segment (1) server (1) service broker (2) services (4) settings (75) SQL (74) SSAS (1) SSIS (19) SSL (8) SSMS (4) SSRS (6) storage (1) String (35) sybase (57) telnet (2) tempdb (1) Theory (2) tips (120) tools (3) training (1) transaction (6) trigger (2) Tuple (2) TVP (1) unix (8) users (3) vb.net (4) versioning (1) windows (14) xml (10) XSD (1) zip (1)

Run SSIS package from a job

Source DB: VM4ItaiTest, Exported Table/Process: TestTable
Data Warehouse (destination) DB: ItaiDW

1. Add a column IsExportToDW to table TestTable. (DEFAULT 0):
  • 0 = new row, was not Exported yet to DWH.
  • 2 = in export process.
  • 1 = Exported to DWH.
  • Create index for this column.

2. In the Stored-procedure that select the data for this process (that called, for this example dbo.ItaiFillTestTable), Select only records where TestTable.IsExportToDW = 2

3. Create new SSIS package TestTablePackage.dtsx:
  • Source: EXEC [dbo].[spr_Itai_PowerData_FillTable_AssignmentsHistory] (in DB VM4ItaiTest).
  • Destination: PowerData_AssignmentsHistory (in DB ItaiDW).

4. Create configuration file for the package.

5. Create a Job to export data to DWH ItaiTestDW_TestTable:
  • Step 1: UPDATE TestTable SET IsExportToDW = 2 WHERE IsExportToDW = 0.
  • Step 2: execute TestTablePackage.
  • Step 3: UPDATE TestTable SET IsExportToDW = 1 WHERE IsExportToDW = 2.
  • Schedule: Can be each X minutes.


Notes:
1. The package can be executed also from trigger on TestTable:
  • Execute the package directly from the trigger (instead of Job and column IsExportToDW). Disadvantage: when the package will be failed – the trigger and also all the insertion will be failed too.
  • Start the job from the trigger (don't wait to the job execution completion).

2. The package can be executed also from stored procedures.

3. In any process of the above – it's recommended to keep column IsExportToDW – in order to know if the process is failed and make it re-execute failed records.

4. To complete the solution, it's required to:
  • Update column IsExportToDW (=0) when a new row is inserted (will be done automatically by default value 0 to the column).
  • Update column IsExportToDW (=0) when a new row is updated.  Implement cases of row update in SSIS.
  • Implement cases of row deletion in SSIS.

Problems (and solutions... (-: ) in process of running SSIS package from a job:
http://copypastenet.blogspot.com/2011/02/problems-in-process-of-running-ssis.html

No comments:

Post a Comment