{ "@context": "https://schema.org", "@type": "Organization", "name": "Brainscape", "url": "https://www.brainscape.com/", "logo": "https://www.brainscape.com/pks/images/cms/public-views/shared/Brainscape-logo-c4e172b280b4616f7fda.svg", "sameAs": [ "https://www.facebook.com/Brainscape", "https://x.com/brainscape", "https://www.linkedin.com/company/brainscape", "https://www.instagram.com/brainscape/", "https://www.tiktok.com/@brainscapeu", "https://www.pinterest.com/brainscape/", "https://www.youtube.com/@BrainscapeNY" ], "contactPoint": { "@type": "ContactPoint", "telephone": "(929) 334-4005", "contactType": "customer service", "availableLanguage": ["English"] }, "founder": { "@type": "Person", "name": "Andrew Cohen" }, "description": "Brainscape’s spaced repetition system is proven to DOUBLE learning results! Find, make, and study flashcards online or in our mobile app. Serious learners only.", "address": { "@type": "PostalAddress", "streetAddress": "159 W 25th St, Ste 517", "addressLocality": "New York", "addressRegion": "NY", "postalCode": "10001", "addressCountry": "USA" } }

Caboodle Development Flashcards

(209 cards)

1
Q

Which environment is typically used for building and testing custom DMCs?
A. TST (Testing)
B. REL (Release)
C. PRD (Production)
D. DEV (Development)

A

D. DEV (Development)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

To prevent Caboodle from creating a _old column when deleting a column, what
should you do? (2)
A. Use the ‘Keep all data’ setting
B. Use ‘Apply Changes’ without script generation
C. Drop the column in the pre-conversion block
D. Delete the column from metadata only

A

Drop the column in the pre-conversion block

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Which of the following best describes a surrogate key? (4)
A. A business key from a source system
B. A human-readable identifier from Clarity
C. A system-generated key used in reporting tables
D. A primary key in Chronicles

A

C. A system-generated key used in reporting tables

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

True or False: The Caboodle reporting database is used by SSIS packages to load raw data.
A. True
B. False

A

B. False

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is the purpose of the ‘pre-conversion’ section in a Caboodle-generated
script? (11)
A. To finalize database changes after metadata is applied
B. To rename or drop columns before schema changes are applied
C. To validate DMC metadata before exporting
D. To run the ETL package execution

A

B. To rename or drop columns before schema changes are applied

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What does the ‘_IsDeleted’ column indicate in a Caboodle reporting table? (1)
A. The row is currently in use
B. The row has been manually edited
C. The row is marked for deletion
D. The row is a duplicate

A

C. The row is marked for deletion
_IsDeleted is a metadata column marking rows as deleted when set to 1.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Which type of key is generated during ETL and used in reporting tables? (2)
A. Business Key
B. External Key
C. Surrogate Key
D. Source Key

A

C. Surrogate Key
Surrogate keys are system-generated during ETL for uniqueness in reporting.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

True or False: You can use the AddColumnToDmc API to edit an existing column. (3)
A. True
B. False

A

B. False
AddColumnToDmc can only add new columns, not edit existing ones.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is the purpose of the BusinessKeyLookup table? (4)
A. To create new primary keys
B. To map business keys to surrogate keys for performance
C. To track changes in report structure
D. To store user-friendly metadata

A

B. To map business keys to surrogate keys for performance

BusinessKeyLookup is used internally for performance during ETL, using numeric IDs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Which environment is considered the final validation before production? (5)
A. DEV
B. TST
C. REL
D. PRD

A

C. REL

REL (Release) environment is used for final validation with production-like data.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Which Epic database is used for transactional data?

A. Clarity
B. Caboodle
C. Chronicles
D. Radar

A

C. Chronicles ✅

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is Caboodle primarily used for?

A. Operational data entry
B. Enterprise data warehousing
C. Patient billing
D. Appointment scheduling

A

B. Enterprise data warehousing

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What type of data model does Caboodle use?

A. Relational
B. Dimensional
C. Hierarchical
D. Object-oriented

A

B. Dimensional ✅

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is the naming convention for a fact table?

A. <TableName>Dim
B. <TableName>Fact
C. <TableName>Bridge
D. <TableName>Info</TableName></TableName></TableName></TableName>

A

B. <TableName>Fact ✅</TableName>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Which table type provides descriptive context?

A. Fact
B. Dimension
C. Bridge
D. Info

A

B. Dimension ✅

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is the purpose of a bridge table?

A. Store metadata
B. Store one-to-many relationships
C. Store patient demographics
D. Store ETL logs

A

B. Store one-to-many relationships

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What is a surrogate key?

A. A real-world identifier
B. A system-generated unique identifier
C. A foreign key
D. A metadata column

A

B. A system-generated unique identifier ✅

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Which of the following is a business key example?

A. PatientKey
B. EpicPatientId
C. EncounterKey
D. MedicationKey

A

B. EpicPatientId ✅

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

What is the purpose of the staging database in Caboodle?

A. Final reporting
B. Data transformation
C. User access
D. Backup storage

A

B. Data transformation ✅

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

What tool is used for ETL in Caboodle?

A. SSRS
B. SSIS
C. Tableau
D. Power BI

A

B. SSIS ✅

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

What does a DMC include?

A. Only a reporting table
B. Only ETL logic
C. Reporting table, metadata, and ETL logic
D. Only metadata

A

C. Reporting table, metadata, and ETL logic ✅

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

What is the naming convention for a custom table?

A. <TableName>Bridge
B. <TableName><Suffix>X
C. <TableName>Fact
D. <TableName>Dim</TableName></TableName></Suffix></TableName></TableName>

A

B. <TableName><Suffix>X ✅</Suffix></TableName>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

What is the purpose of the IsDeleted column?

A. Track ETL errors
B. Indicate if a row is logically deleted
C. Store timestamps
D. Store user IDs

A

B. Indicate if a row is logically deleted ✅

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Which of the following is a durable key used for?

A. Identifying metadata
B. Identifying entities over time
C. Identifying ETL packages
D. Identifying bridge relationships

A

B. Identifying entities over time ✅

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
What is the purpose of the GetIdFromIdType API? A. Get IdType from IdTypeId B. Get IdTypeId from IdType C. Get PatientKey from MRN D. Get EncounterKey from CSN
B. Get IdTypeId from IdType ✅
26
Which of the following is a valid IdType? A. PatientKey B. EpicPatientId C. EncounterKey D. MedicationKey
B. EpicPatientId ✅
27
What is the purpose of the BusinessKeyLookup table? A. User-facing reporting B. Internal ETL performance C. Metadata storage D. Logging
B. Internal ETL performance ✅
28
What is the function of the IsReverseLookupBusinessKey column? A. Tracks ETL errors B. Indicates preferred business key C. Stores timestamps D. Maps to dimension tables
B. Indicates preferred business key ✅
29
Which of the following is a valid dimension table name? A. EncounterFact B. PatientDim C. DiagnosisBridge D. IdentityInfo
B. PatientDim ✅
30
What is the purpose of the CreateScheduledExecution API? A. Create a new DMC B. Schedule a package to run C. Delete a reporting table D. Generate a report
B. Schedule a package to run ✅
31
What is the purpose of the IdTypeLookup table? A. Store patient names B. Map IdType strings to IdTypeId C. Store ETL logs D. Store metadata
B. Map IdType strings to IdTypeId ✅
32
Which of the following is a reporting database? A. Chronicles B. Clarity C. Caboodle D. Radar
C. Caboodle ✅
33
What is the purpose of the MedicationDim_IdLookup view? A. Store medication orders B. Map business keys to surrogate keys C. Store ETL logs D. Store patient allergies
B. Map business keys to surrogate keys ✅
34
What is the naming convention for a primary key column? A. Id B. Key C. Id D. Key
B. Key ✅
35
What is the purpose of the @i_ prefix in API parameters? A. Output parameter B. Input parameter C. Integer value D. Boolean flag
B. Input parameter ✅
36
Which of the following is a benefit of the dimensional model? A. Complex joins B. Slower queries C. Easier report writing D. Higher normalization
C. Easier report writing ✅
37
What is the purpose of the @o_ prefix in API parameters? A. Input parameter B. Output parameter C. Optional parameter D. Object reference
B. Output parameter ✅
38
Which of the following is a bridge table example? A. PatientDim B. EncounterFact C. DiagnosisBridge D. IdentityInfo
C. DiagnosisBridge ✅
39
Which of the following is a metadata column? A. _IsDeleted B. PatientKey C. EncounterFact D. EpicPatientId
A. _IsDeleted ✅
40
Which of the following is true about Clarity? A. Uses dimensional model B. Combines Epic and non-Epic data C. Uses normalized model D. Integrated with SlicerDicer
C. Uses normalized model ✅
41
Caboodle supports integration with non-Epic data
True
42
Surrogate keys are generated by source systems.
false
43
Clarity is optimized for enterprise-wide analytics.
false
44
Caboodle uses SSIS for ETL processes.
True
45
Caboodle uses SSIS for ETL processes.
True
46
The IdLookup view is found in the reporting database.
False
47
Business keys are used in the staging database.
true
48
Caboodle uses a normalized data model.
False
49
The BusinessKeyLookup table is optimized for performance.
True
50
The GetIdTypeFromId API returns a string IdType.
True
51
Which of the following are valid Caboodle table types? A. Fact B. Dimension C. Bridge D. Index
A. Fact ✅ B. Dimension ✅ C. Bridge ✅
52
Which of the following are components of a DMC? A. Reporting Table B. Metadata Tables C. ETL Logic D. SSRS Report
A. Reporting Table ✅ B. Metadata Tables ✅ C. ETL Logic ✅
53
Which of the following are valid key types in Caboodle? A. Primary Key B. Durable Key C. Combo Key D. Static Key
A. Primary Key ✅ B. Durable Key ✅ C. Combo Key ✅
54
Which of the following are true about surrogate keys? A. Generated during ETL B. Used in reporting tables C. Represent real-world identifiers D. Ensure uniqueness
A. Generated during ETL ✅ B. Used in reporting tables ✅ D. Ensure uniqueness ✅
55
Which of the following are true about business keys? A. Come from source systems B. Used in import tables C. Always numeric D. Represent real-world identifiers
A. Come from source systems ✅ B. Used in import tables ✅ D. Represent real-world identifiers ✅
56
Which of the following are found in the staging database? A. IdLookup Views B. BusinessKeyLookup C. Reporting Tables D. SSIS Packages
A. IdLookup Views ✅ B. BusinessKeyLookup ✅ D. SSIS Packages ✅
57
Which of the following are true about Clarity? A. Uses normalized schema B. Supports non-Epic data C. Extracts data from Chronicles D. Uses dimensional model
A. Uses normalized schema ✅ C. Extracts data from Chronicles ✅
58
What is the first step in planning a new DMC? A. Add columns in the Dictionary Editor B. Run an execution C. Start with a peer-reviewed design D. Create a clustered index
C. Start with a peer-reviewed design ✅
59
Where do you define the DMC name, granularity, and primary key? A. Executions tab B. Dictionary tab C. Dictionary Editor D. Work Queue
C. Dictionary Editor ✅
60
Which of the following is not a valid data type for a column in Caboodle? A. nvarchar(100) B. tinyint C. datetime2 D. varchar(max)
D. varchar(max) ✅
61
What is the recommended index type for tables with over 1 million rows? A. Clustered index B. Non-clustered index C. Clustered columnstore index D. Hash index
C. Clustered columnstore index ✅
62
What does the @i_sChangeType parameter in the AddColumnToDmc API specify? A. Whether the column is nullable B. Whether the column is a primary key C. Whether the column is Type1 or Type2 D. Whether the column is indexed
C. Whether the column is Type1 or Type2 ✅
63
What happens if you add a column in the Console but don’t apply changes? A. The column is automatically added to the reporting table B. The column is added to the import table only C. A yellow warning appears in the Dictionary Editor D. The column is ignored during execution
C. A yellow warning appears in the Dictionary Editor ✅
64
Which of the following is a valid boolean column name? A. Flag1 B. IsReadmission C. DiagnosisEpicId D. PatientKey
B. IsReadmission ✅
65
Which of the following suffixes is appropriate for a datetime column? A. Key B. Id C. Instant D. Flag
C. Instant ✅
66
What is the purpose of the Config.TableEtlColumns table? A. Stores ETL execution logs B. Stores column-level metadata C. Stores reporting data D. Stores user access roles
B. Stores column-level metadata ✅
67
What is the correct way to add a column to an Epic-released DMC? A. Modify the existing columns B. Add snapshot columns C. Use the Dictionary Editor D. Add nvarchar(max) columns
C. Use the Dictionary Editor ✅
68
You can add columns to Bridge and Info DMCs
False
69
You must run an execution after adding a column to load data
true
70
The Caboodle Console allows you to reorder existing columns in Epic-released DMCs.
False
71
nvarchar lengths must be in increments of 50.
True
72
The AddColumnToDmc API updates both metadata and reporting tables.
False
73
Which of the following are valid steps before creating a DMC? A. Check if data already exists in Caboodle B. Review the Reporting with Caboodle guide C. Add columns to the reporting table D. Consult your Epic representative
A. Check if data already exists in Caboodle ✅ B. Review the Reporting with Caboodle guide ✅ D. Consult your Epic representative ✅
74
Which of the following are valid default metadata columns in a DMC? A. _IsDeleted B. _LastUpdatedInstant C. EncounterKey D. _PetEncounterKey
A. _IsDeleted ✅ B. _LastUpdatedInstant ✅ D. _PetEncounterKey ✅
75
Which of the following are valid column naming conventions? A. Use PascalCase B. Use plural nouns C. Boolean columns should be verbs/adjectives D. Use organization-specific jargon
A. Use PascalCase ✅ C. Boolean columns should be verbs/adjectives ✅
76
Which of the following are valid data type practices? A. Use datetime2 over datetime B. Use nvarchar(max) for long text in the same table C. Use tinyint for boolean flags D. Match Clarity types exactly
A. Use datetime2 over datetime ✅ C. Use tinyint for boolean flags ✅
77
Which of the following are valid options when applying changes in the Dictionary Editor? A. Drop and recreate tables B. Keep all data C. Keep data but drop old columns D. Archive to external storage
A. Drop and recreate tables ✅ B. Keep all data ✅ C. Keep data but drop old columns ✅
78
What is the purpose of the Caboodle Console’s Executions tab? A. View metadata B. Add columns C. Create and monitor ETL executions D. Manage user access
C. Create and monitor ETL executions ✅
79
Where can you find ER diagrams and granularity information? A. Work Queue B. Dictionary C. Configuration D. Tools
B. Dictionary ✅
80
What does the Work Queue in Caboodle Console help with? A. Creating new DMCs B. Viewing and resolving ETL issues C. Managing user roles D. Editing metadata
B. Viewing and resolving ETL issues ✅
81
Which of the following is not allowed when modifying Epic-released DMCs? A. Adding custom columns B. Adding snapshot columns to non-snapshot DMCs C. Using Dictionary Editor D. Adding Epic or non-Epic data
B. Adding snapshot columns to non-snapshot DMCs ✅
82
What happens when you choose “Keep all data” while applying changes? A. Deletes all data B. Renames modified columns with _Old or _Deprecated C. Drops the table D. Archives the table
B. Renames modified columns with _Old or _Deprecated ✅
83
What is the correct way to view readable keys for a DMC? A. Query Config.Sources B. Query _IdLookup C. Query Config.TableEtlColumns D. Query dbo.Import
B. Query _IdLookup ✅
84
Which of the following is a valid use of the nvarchar(max) data type? A. In a reporting table B. In a bridge table C. In a separate table for long text D. In a dimension table
C. In a separate table for long text ✅
85
What is the purpose of the Config.Sources table? A. View ETL logs B. Confirm source system IDs C. Store user access D. Store reporting data
B. Confirm source system IDs ✅
86
What is the correct way to add a column to a DMC using the Console? A. Use the Executions tab B. Use the Tables tab in Dictionary Editor C. Use the Work Queue D. Use the Configuration tab
B. Use the Tables tab in Dictionary Editor ✅
87
What is the purpose of the Allow Null setting when adding a column? A. Determines if column is indexed B. Determines if column is required C. Determines column order D. Determines column type
B. Determines if column is required
88
You can use the Caboodle Console to apply metadata changes.
True
89
The AddColumnToDmc API automatically loads data into the reporting table.
False
90
You can reorder custom columns in a DMC.
True
91
You can add nvarchar(max) columns to Epic-released DMCs.
False
92
The Caboodle Console is role-based and managed via Active Directory.
True
93
Which of the following are valid Caboodle Console sections? A. Dictionary B. Executions C. Configuration D. Reports
A. Dictionary ✅ B. Executions ✅ C. Configuration ✅
94
Which of the following are valid column data types in Caboodle? A. nvarchar(100) B. tinyint C. datetime2 D. varchar(max)
A. nvarchar(100) B. tinyint C. datetime2
95
Which of the following are best practices for column naming? A. Use PascalCase B. Use singular nouns C. Use abbreviations like Flg1 D. Use clear, descriptive names
A. Use PascalCase ✅ B. Use singular nouns ✅ D. Use clear, descriptive names ✅
96
Which of the following are valid queries to run in SSMS for DMC validation? A. SELECT * FROM dbo.Import B. SELECT * FROM Epic._IdLookup C. SELECT * FROM Config.Sources D. SELECT * FROM dbo._Old
A. SELECT * FROM dbo.Import ✅ B. SELECT * FROM Epic._IdLookup ✅ C. SELECT * FROM Config.Sources ✅
97
Which of the following are valid column suffixes based on data type? A. Key for lookup columns B. Id for identifiers C. Date/Time/Instant for datetime D. Flag for booleans
A. Key for lookup columns ✅ B. Id for identifiers ✅ C. Date/Time/Instant for datetime ✅
98
Which of the following are valid uses of the Dictionary Editor? A. Add columns B. Create new DMCs C. Apply changes D. Execute SSIS packages
A. Add columns ✅ B. Create new DMCs ✅ C. Apply changes ✅
99
Which of the following are true about clustered columnstore indexes? A. Used for tables with >1 million rows B. Improve performance for large datasets C. Allow nvarchar(max) columns D. Are default for all DMCs
A. Used for tables with >1 million rows ✅ B. Improve performance for large datasets ✅
100
Which of the following are valid column design tips? A. Use smallest nvarchar size needed B. Use datetime2 over datetime C. Use tinyint for boolean flags D. Use nvarchar(max) for all strings
A. Use smallest nvarchar size needed ✅ B. Use datetime2 over datetime ✅ C. Use tinyint for boolean flags ✅
101
Which of the following are true about applying changes in the Console? A. You can drop and recreate tables B. You can keep all data C. You can drop old columns D. You can rename the DMC
A. You can drop and recreate tables ✅ B. You can keep all data ✅ C. You can drop old columns ✅
102
Which of the following are valid steps after creating a DMC? A. Add columns B. Register the DMC C. Create an execution D. Skip the Work Queue
A. Add columns ✅ B. Register the DMC ✅ C. Create an execution ✅
103
Which of the following are true about the AddColumnToDmc API? A. Updates metadata only B. Requires execution to load data C. Adds column to reporting table automatically D. Requires DMC name and column name
A. Updates metadata only ✅ B. Requires execution to load data ✅ D. Requires DMC name and column name ✅
104
Which of the following are valid uses of the Work Queue? A. Monitor ETL issues B. Resolve data load failures C. Add new columns D. View execution status
A. Monitor ETL issues ✅ B. Resolve data load failures ✅ D. View execution status ✅
105
Which of the following are true about default metadata columns? A. _IsDeleted marks logical deletions B. _LastUpdatedInstant stores timestamps C. _Key is a surrogate key D. EncounterKey is always included
A. _IsDeleted marks logical deletions ✅ B. _LastUpdatedInstant stores timestamps ✅ C. _Key is a surrogate key ✅
106
Which of the following are valid ways to confirm source data? A. Use Config.Sources B. Use _Import_Source_1 C. Use Config.TableEtlColumns D. Use _BusinessKeyLookup
A. Use Config.Sources ✅ B. Use _Import_Source_1 ✅ D. Use _BusinessKeyLookup ✅
107
What is the purpose of the Import Table in Caboodle? A. Final reporting table B. Temporary staging area for SSIS-loaded data C. Metadata storage D. Snapshot history
B. Temporary staging area for SSIS-loaded data ✅
108
What does the Reporting Table contain? A. Raw data from Clarity B. Data used for analytics and reporting C. ETL logs D. Source system metadata
B. Data used for analytics and reporting ✅
109
Which of the following is a limitation of the AddColumnToDmc API? A. Can’t add columns B. Can’t edit existing columns C. Can’t be used in development D. Automatically applies changes
B. Can’t edit existing columns ✅
110
Which of the following is a benefit of using the API? A. UI validation B. Interactive column preview C. Scriptable and repeatable D. Auto-indexing
C. Scriptable and repeatable ✅
111
Which DMC types cannot have columns added? A. Fact B. Dimension C. Bridge D. Custom
C. Bridge ✅
112
What does clicking Apply Changes in the Console do? A. Deletes the DMC B. Updates the physical database C. Runs the ETL D. Creates a new SSIS package
B. Updates the physical database ✅
113
What is the correct lookup type when loading a business key from a non-Caboodle source? A. Key B. ID C. Date D. Time
B. ID ✅
114
What is the correct lookup type when referencing a surrogate key from a Caboodle table? A. ID B. Key C. Date D. Time
B. Key ✅
115
Which lookup type is best for snapshot DMCs? A. ID (Record) B. Key (Snapshot) C. ID (Snapshot) D. Direct Date
A. ID (Record) ✅
116
What is the benefit of using DateDim instead of a direct datetime column? A. Easier to write queries B. Supports advanced filtering C. Requires no joins D. Avoids surrogate keys
B. Supports advanced filtering ✅
117
Which of the following is true about post-ETL columns? A. Populated during SSIS load B. Exist only in import tables C. Populated via stored procedures D. Used for primary keys
C. Populated via stored procedures ✅
118
Which of the following is a valid reason to use a direct datetime column? A. You need holiday filtering B. You want to avoid joins C. You’re using DateDim D. You need time slicing
B. You want to avoid joins ✅
119
What is the correct lookup type for a datetime value used with TimeOfDayDim? A. Date B. Key C. Time D. Instant
C. Time ✅
120
What is the correct import column for a DateDim lookup using a date value? A. DischargeDateKey B. DischargeDate C. DischargeDateId D. DateKey
B. DischargeDate ✅
121
The AddColumnToDmc API can be used in production environments.
false
122
You must run an execution after applying changes to load data into the reporting table.
true
123
You can use nvarchar(max) in Epic-released DMCs.
false
124
Lookup columns allow DMCs to connect to other DMCs.
true
125
The API can be used to add snapshot (Type2) columns.
true
126
You can reorder existing columns in Epic-released DMCs.
False
127
You must specify a @i_sChangeType when using AddColumnToDmc.
true
128
The import table is used for final reporting.
false
129
DateDim supports attributes like DayOfWeek and IsHoliday.
true
130
You can use the same column name for both import and reporting tables.
true
131
What happens when you change a column’s data type in a DMC? A. The column is deleted B. The DMC is locked C. A new column with _Old suffix is created D. The import table is dropped
C. A new column with _Old suffix is created ✅
132
What must you do after modifying a column in the Caboodle Console? A. Restart the ETL B. Click Apply Changes and Generate Script C. Rebuild the DMC D. Delete the import table
B. Click Apply Changes and Generate Script ✅
133
What does the “Keep all data” option do when applying changes? A. Deletes all old data B. Preserves existing data and renames modified columns C. Drops the DMC D. Creates a new import table
B. Preserves existing data and renames modified columns ✅
134
When deleting a column from a DMC, what must be done manually? A. Remove the column from the import table B. Recreate the DMC C. Rebuild indexes D. Run a snapshot
A. Remove the column from the import table ✅
135
What is a condition for deleting a custom DMC? A. It must be in production B. It must be referenced by another DMC C. It must not be a dependency for other components D. It must contain snapshot columns
C. It must not be a dependency for other components ✅
136
What tool is used to remove reporting tables after deleting a DMC? A. SSIS B. DropDmcTables C. dbo.DropDeletedDmcReportingTables D. RemoveTableScript
C. dbo.DropDeletedDmcReportingTables
137
What is a Procedure ETL? A. A stored procedure that runs before/after ETL B. A script to delete DMCs C. A backup utility D. A snapshot loader
A. A stored procedure that runs before/after ETL ✅
138
What is an Auxiliary Procedure? A. A procedure that spans multiple DMCs B. A procedure tied to a single DMC C. A system-wide ETL D. A metadata cleaner
B. A procedure tied to a single DMC ✅
139
What is a Post ETL Column? A. A column in the import table B. A column populated after ETL via a procedure C. A column used for snapshots D. A column used for joins
B. A column populated after ETL via a procedure ✅
140
Which environment allows the most flexibility for development? A. Production B. Release C. Testing D. Development
D. Development ✅
141
What tool is used to generate scripts for moving development between environments? A. SSMS B. Caboodle Console C. Azure DevOps D. Git
B. Caboodle Console ✅
142
What must be done before executing a script in a new environment? A. Delete the DMC B. Back up the environment C. Run a snapshot D. Lock the DMC
B. Back up the environment ✅
143
What is the purpose of dbo.UpdateReportingTable? A. Drop a DMC B. Update reporting table data safely C. Create a new DMC D. Monitor ETL failures
B. Update reporting table data safely ✅
144
Which of the following is a valid use of version control? A. Store SSIS packages B. Run ETL C. Monitor data freshness D. Delete columns
A. Store SSIS packages ✅
145
What is the recommended folder structure for version control? A. /Prod/Dev/Test B. /DMCs/All/Shared C. /Development/DMC_Name/Shared/Testing/Production D. /Scripts/ETL/Backup
C. /Development/DMC_Name/Shared/Testing/Production ✅
146
Changing a column’s data type resets backfills for the DMC.
true
147
Deleting a column from the reporting table automatically deletes it from the import table.
False
148
You must manually delete _Old columns if no longer needed.
True
149
A DMC can be deleted even if it is referenced by other components.
False
150
Procedure ETLs can span multiple DMCs.
True
151
Auxiliary Procedures are used for shared logic across DMCs.
False
152
DEV environments allow creating and deleting DMCs.
True
153
You can directly develop in the Production environment.
False
154
Caboodle APIs can be used to monitor ETL failures.
True
155
Caboodle Console can generate SQL scripts for custom development.
True
156
What do Caboodle-generated scripts transfer? A. SSIS packages B. Stored procedures C. Metadata only D. Custom indexes
C. Metadata only ✅
157
Which of the following must be manually transferred between environments? A. DMC metadata B. Custom SSIS packages C. Reporting tables D. Console settings
B. Custom SSIS packages ✅
158
How are custom indexes on Epic-released DMCs handled? A. Transferred via script B. Automatically copied C. Recreated manually D. Not supported
C. Recreated manually ✅
159
What is the purpose of bulk script generation? A. Create backups B. Avoid missing dependencies C. Reset ETL D. Drop old columns
B. Avoid missing dependencies ✅
160
What is the correct order of environments in the development migration workflow? A. PRD → REL → TST → DEV B. DEV → TST → REL → PRD C. TST → DEV → PRD → REL D. REL → DEV → PRD → TST
B. DEV → TST → REL → PRD ✅
161
Which permission is required for deleting from the Epic schema? A. GRANT SELECT B. GRANT DELETE ON SCHEMA::Epic C. GRANT EXECUTE D. GRANT ALTER
B. GRANT DELETE ON SCHEMA::Epic ✅
162
What does dbo.ValidateSystem check for? A. User permissions B. Configuration, DMC, and package errors C. SQL syntax D. SSIS deployment
B. Configuration, DMC, and package errors ✅
163
What section of a script should be used to drop _Old columns? A. PRE-CONVERSION B. POST-CONVERSION C. HEADER D. METADATA
B. POST-CONVERSION ✅
164
What API is used to reset backfill? A. dbo.DropOldColumnsOnDmc B. dbo.ResetBackfill C. dbo.ExecuteSql D. dbo.ValidateSystem
B. dbo.ResetBackfill ✅
165
What is the purpose of dbo.ExecuteSql? A. Log errors B. Run SQL safely across environments C. Drop DMCs D. Create indexes
B. Run SQL safely across environments ✅
166
What does @i_IsExecution = 0 mean in dbo.ExecuteSql? A. Run in production B. Run outside of an execution C. Run in DEV only D. Run with elevated permissions
B. Run outside of an execution ✅
167
What is the purpose of dbo.CreateScheduledExecution? A. Drop a DMC B. Automate ETL and validation runs C. Rename columns D. Reset permissions
B. Automate ETL and validation runs ✅
168
What API is used to log messages to the Work Queue? A. dbo.LogError B. dbo.LogWorkQueryEntry C. dbo.ExecuteSql D. dbo.ValidateSystem
B. dbo.LogWorkQueryEntry ✅
169
What does dbo.DeleteSource do? A. Deletes a DMC B. Deletes all records from a specific data source C. Deletes a column D. Deletes a package
B. Deletes all records from a specific data source ✅
170
What is the purpose of dbo.SetEtlProcessLock? A. Prevent concurrent ETL modifications B. Lock user access C. Lock the console D. Lock the SSIS catalog
A. Prevent concurrent ETL modifications ✅
171
Caboodle scripts can transfer stored procedures.
false
172
Custom indexes on custom DMCs are transferred via script.
true
173
Scripts can be used to move development backward (e.g., May → Feb).
False
174
You should always validate the system after transferring development.
true
175
The PRE-CONVERSION section runs after database changes.
false
176
You can rename a column using sp_rename in the PRE-CONVERSION section.
true
177
dbo.LogError can halt backfill if configured to do so.
true
178
dbo.TruncateAllDmcs deletes all records from all DMCs.
true
179
dbo.UpdateScheduledExecution is used to create new executions.
false
180
dbo.ValidateSystem returns an error count via an output parameter.
true
181
Which API should you use to lock a DMC during an ETL process? A. SetLock B. SetEtlProcessLock C. LockDmc D. LockDuringETL
B. SetEtlProcessLock ✅
182
Which API is recommended for locking during non-ETL tasks like backups? A. SetEtlProcessLock B. SetLock C. LockBackup D. LockNow
B. SetLock ✅
183
What type of lock allows multiple readers but prevents writes? A. Exclusive Write Lock B. Shared Read Lock C. Admin Lock D. ETL Lock
B. Shared Read Lock ✅
184
What happens if SetEtlProcessLock fails? A. It retries indefinitely B. It automatically releases the lock C. It locks the DMC permanently D. It deletes the DMC
B. It automatically releases the lock ✅
185
What is the purpose of the FindOldInferredRows API? A. Delete inferred rows B. Identify incomplete records C. Reset ETL D. Lock inferred rows
B. Identify incomplete records ✅
186
What parameter in FindOldInferredRows limits the number of rows returned? A. @i_sOutputMode B. @i_dCreatedBefore C. @i_sDmcName D. @i_iRowLimit
A. @i_sOutputMode ✅
187
What is a common cause of inferred rows? A. Duplicate keys B. Hard deletes in Clarity C. Excessive joins D. Column renaming
B. Hard deletes in Clarity ✅
188
What does the _IsInferred column indicate? A. The row is a duplicate B. The row was created without full source data C. The row is locked D. The row is archived
B. The row was created without full source data ✅
189
Which environment is used for final validation before production? A. DEV B. TST C. REL D. PRD
C. REL ✅
190
What is the purpose of the pre-conversion section in a script? A. Run after database changes B. Run before metadata is installed C. Run after metadata is installed, before DB changes D. Run during ETL
C. Run after metadata is installed, before DB changes ✅
191
What is the purpose of the post-conversion section? A. Drop the DMC B. Run before metadata is installed C. Run after database changes D. Run during SSIS
C. Run after database changes ✅
192
Which API is used to remove _Old columns? A. DropColumn B. DropOldColumnsOnDmc C. DeleteOld D. CleanOldColumns
B. DropOldColumnsOnDmc ✅
193
Which API resets backfill for a DMC or package? A. ResetDmc B. ResetBackfill C. RebuildBackfill D. BackfillNow
B. ResetBackfill ✅
194
What is the purpose of CreateScheduledExecution? A. Create a new DMC B. Schedule ETL or validation runs C. Drop a column D. Rename a table
B. Schedule ETL or validation runs ✅
195
What does AllowHardDeletes do? A. Enables deletion of DMCs B. Enables deletion of records by key C. Enables deletion of packages D. Enables deletion of scripts
B. Enables deletion of records by key ✅
196
SetEtlProcessLock is safer for ETL because it releases on failure
true
197
shared locks prevent all access to a DMC
false
198
Inferred rows are common in production environments
false
199
You can use FindOldInferredRows to return a count or details.
true
200
The post-conversion section runs before database changes.
false
201
You should use version control to track Caboodle scripts.
true
202
Scripts can be used to move development backward (e.g., May → Feb).
false
203
The _IsInferred column is used to identify inferred rows.
true
204
ExecuteSql can be used to rename columns in the pre-conversion section.
true
205
TruncateAllDmcs deletes all records from all DMCs.
true
206
Which of the following column types are allowed in custom DMCs? A. Lookup columns B. nvarchar(max) columns C. Snapshot change tracking columns D. All of the above
D. All of the above ✅
207
What type of change tracking is allowed in custom DMCs? A. Standard only B. Snapshot only C. Both standard and snapshot D. None
C. Both standard and snapshot ✅
208
Which of the following is not allowed in Epic-released DMCs but is allowed in custom DMCs? A. Lookup columns B. nvarchar(max) columns C. Post ETL columns D. Procedure ETLs
B. nvarchar(max) columns ✅
209
What is the purpose of the pre-conversion block in a script? A. Reset backfills B. Drop or rename columns before DB changes C. Copy data to new columns D. Validate the system
B. Drop or rename columns before DB changes ✅