CertSafari

    Free Cloudera CDP Data Analyst (CDP-4001) Sample Questions

    35 free sample questions from our bank of 391+, covering every exam domain, with answers and detailed explanations. Updated August 2026.

    Domain 1: Use Cloudera Data Visualizations

    Subdomain 1.1: Understand Data Visualizations

    1.A dashboard needs to display precise numeric values for dozens of metrics across many product SKUs, where users will scan exact figures rather than visual patterns. Which visual type best serves this need?

    1. A.A cross tabulation table
    2. B.A packed bubble chart
    3. C.A correlation heatmap
    4. D.A grouped bar chart
    Show answer & explanation

    Correct answer: AA cross tabulation table

    • A. A cross tabulation table presents data in a grid of rows and columns with exact values, which is the visual type best suited to scanning precise numeric figures across many metrics and SKUs.
    • B. A packed bubble chart encodes magnitude through bubble size, which is useful for spotting relative scale but poor for reading exact numeric values.
    • C. A correlation heatmap encodes relationships through color intensity, which highlights patterns rather than presenting precise readable figures.
    • D. A grouped bar chart is effective for comparing categories visually, but with dozens of metrics and SKUs it becomes cluttered and less precise than a tabular display.

    Subdomain 1.1: Understand Data Visualizations

    2.How does drill-down differ from drill-through in a CDV visual?

    1. A.Drill-down reveals a deeper level of a dimension hierarchy inside the same visual, while drill-through navigates to a different dashboard entirely
    2. B.Drill-down navigates to a different dashboard with parameters passed, while drill-through stays within the same visual and hierarchy
    3. C.Drill-down and drill-through both require an application to be created, while dashboards support neither interaction
    4. D.Drill-down only works on cross tabulation visuals, while drill-through only works on chart-based visuals like bar and line
    Show answer & explanation

    Correct answer: ADrill-down reveals a deeper level of a dimension hierarchy inside the same visual, while drill-through navigates to a different dashboard entirely

    • A. Drill-down expands a dimension hierarchy to a more granular level within the same visual, while drill-through is the separate action of navigating to an entirely different target dashboard with parameters passed along.
    • B. This reverses the two behaviors: drill-down is the in-visual hierarchy expansion, and drill-through is the cross-dashboard navigation with parameter passing, not the other way around.
    • C. Neither drill-down nor drill-through requires an app; both interactions are available directly on standalone dashboards without needing an application wrapper.
    • D. Drill-down is not limited to cross tabulation visuals, and drill-through is not limited to chart-based visuals; both interactions apply more broadly across supported visual types.

    Subdomain 1.2: Build a Dashboard

    3.Which parameter types ARE carried over to the destination dashboard when a viewer drills through using "Navigate to Dashboard" with parameter passing enabled? (Select all that apply)(Select 3)

    1. A.Parameters that arrived via the URL to the source visual
    2. B.Parameters corresponding to the specific element the viewer clicked
    3. C.Application scope parameters, when navigating within the same app
    4. D.Parameters explicitly defined on the source visual itself
    5. E.Parameters scoped outside the current application entirely
    Show answer & explanation

    Correct answers: A, B, CParameters that arrived via the URL to the source visual; Parameters corresponding to the specific element the viewer clicked; Application scope parameters, when navigating within the same app

    • A. Correct, because parameters that reached the source visual via URL are one of the supported types that transfer during drill-through navigation.
    • B. Correct, because the parameter tied to the clicked element is passed along so the destination dashboard can build its visuals accordingly.
    • C. Correct, because application scope parameters carry over when the navigation happens within the same app.
    • D. Incorrect, because parameters explicitly defined directly on the source visual are one of the two documented exceptions that do not transfer.
    • E. Incorrect, because parameters that fall outside the current application's scope are the other documented exception and are not passed along.

    Subdomain 1.2: Build a Dashboard

    4.Which of the following are elements an analyst can place directly onto a dashboard's canvas within Dashboard Designer? (Select all that apply)(Select 3)

    1. A.A visual built from the dashboard's associated dataset
    2. B.A filter widget scoped to some or all of the visuals
    3. C.A markup or text box used for titles and annotations
    4. D.A brand-new data connection configured from scratch
    5. E.A Ranger row-level security policy definition
    Show answer & explanation

    Correct answers: A, B, CA visual built from the dashboard's associated dataset; A filter widget scoped to some or all of the visuals; A markup or text box used for titles and annotations

    • A. Correct, because adding visuals built from the dashboard's dataset onto the canvas is the core purpose of the Dashboard Designer.
    • B. Correct, because filter widgets are placed on the dashboard canvas and then associated with some or all of the visuals present.
    • C. Correct, because markup or text elements can be added directly to the canvas alongside visuals for titles and annotations.
    • D. Incorrect, because data connections are configured once at the platform level and are not created from within an individual dashboard's canvas.
    • E. Incorrect, because row-level security policies are managed through Ranger, not added as elements on a dashboard canvas.

    Domain 2: Use Apache Hive and Impala

    Subdomain 2.2: Format and convert data types

    5.Which statement accurately describes a difference between Impala and Hive regarding implicit type conversion?

    1. A.Impala allows the same implicit narrowing conversions as Hive, including DOUBLE to FLOAT and BIGINT to INT
    2. B.Impala enforces stricter typing than Hive and rejects implicit narrowing conversions like DOUBLE to FLOAT or BIGINT to INT
    3. C.Hive rejects all implicit conversions, while Impala allows any conversion without a CAST
    4. D.Neither engine supports implicit conversions, so both require CAST for every type change
    Show answer & explanation

    Correct answer: BImpala enforces stricter typing than Hive and rejects implicit narrowing conversions like DOUBLE to FLOAT or BIGINT to INT

    • A. This is incorrect; Impala is the engine that enforces stricter typing, not the one that mirrors Hive's more permissive narrowing behavior.
    • B. Impala applies stricter type rules than Hive and does not perform implicit narrowing conversions such as DOUBLE to FLOAT or BIGINT to INT, requiring an explicit CAST where Hive would coerce automatically.
    • C. This reverses the actual relationship; Hive is the more permissive engine with implicit narrowing, while Impala is the stricter one.
    • D. Both engines do support some implicit conversions, such as widening an INT to a BIGINT; the distinction tested on the exam is about narrowing conversions specifically.

    Subdomain 2.2: Format and convert data types

    6.For which of the following CAST target data types does Impala return an error, rather than NULL, when the source value cannot be converted? (Select all that apply.)(Select 3)

    1. A.DECIMAL
    2. B.DATE
    3. C.BOOLEAN
    4. D.DOUBLE
    5. E.STRING
    Show answer & explanation

    Correct answers: A, B, CDECIMAL; DATE; BOOLEAN

    • A. DECIMAL is one of the target types where an unconvertible source value causes Impala to return an error instead of NULL.
    • B. DATE is one of the target types where an unconvertible source value causes Impala to return an error instead of NULL.
    • C. BOOLEAN is one of the target types where an unconvertible source value causes Impala to return an error instead of NULL.
    • D. DOUBLE is not in the error-raising group; an unconvertible cast to DOUBLE typically returns NULL rather than an error.
    • E. STRING is not in the error-raising group; casting most values to STRING succeeds or returns NULL rather than raising an error.

    Subdomain 2.1: Identify databases/tables within Impala that you need to pull data from

    7.An analyst joins a new project and needs to find and confirm the exact table to query for customer orders, but is unfamiliar with the cluster's databases. Which actions would help the analyst correctly locate and verify the table before writing a query? (Select all that apply.)(Select 3)

    1. A.Run `SHOW DATABASES LIKE '*order*'` to find candidate databases by name.
    2. B.Run `SHOW TABLES IN <candidate_db> LIKE '*order*'` to list matching tables inside a candidate database.
    3. C.Run `DESCRIBE FORMATTED <candidate_db>.<table>` to confirm the table's columns, type, and storage location before querying.
    4. D.Run `DROP TABLE <candidate_db>.<table>` to test whether the table exists, then recreate it if the drop fails.
    5. E.Run `INVALIDATE METADATA` on the entire cluster and wait for it to finish before doing anything else.
    6. F.Guess the table name based on the project name and immediately run `SELECT *` against it.
    Show answer & explanation

    Correct answers: A, B, CRun `SHOW DATABASES LIKE '*order*'` to find candidate databases by name.; Run `SHOW TABLES IN <candidate_db> LIKE '*order*'` to list matching tables inside a candidate database.; Run `DESCRIBE FORMATTED <candidate_db>.<table>` to confirm the table's columns, type, and storage location before querying.

    • A. Correct: narrowing down candidate databases by a name pattern is a reasonable first step when the exact database is unknown.
    • B. Correct: once a candidate database is identified, filtering its tables by a pattern helps pinpoint the right table.
    • C. Correct: inspecting the table's structure and storage location confirms it is the right object and safe to query before running real queries against it.
    • D. Incorrect and destructive: dropping a table to test its existence risks permanently deleting data if it is a managed table, and is not a safe verification method.
    • E. Incorrect: a full cluster-wide invalidation is an expensive, unnecessary step for simply locating one table and offers no benefit over a targeted search.
    • F. Incorrect: querying a guessed table name without verification risks pulling data from the wrong object or failing outright.

    Subdomain 2.4: Work with primary and foreign keys

    8.On a Kudu table, which additional attribute is implicitly required for every column that is part of the PRIMARY KEY?

    1. A.NOT NULL
    2. B.DEFAULT
    3. C.COMPRESSION
    4. D.BLOCK_SIZE
    Show answer & explanation

    Correct answer: ANOT NULL

    • A. Correct. Kudu primary key columns can never contain NULL values, so they are implicitly NOT NULL as part of the primary key semantics enforced by the storage engine.
    • B. Incorrect. DEFAULT is an optional attribute for supplying a value when none is provided on insert; it is not implicitly required on key columns.
    • C. Incorrect. COMPRESSION controls how column data is encoded on disk; it is an optional per-column setting, not something implied by being part of the primary key.
    • D. Incorrect. BLOCK_SIZE configures the storage block size for a column and is optional; it has no implicit relationship with primary key membership.

    Subdomain 2.4: Work with primary and foreign keys

    9.An analyst reviews a schema migration checklist before moving CREATE TABLE scripts from an RDBMS into Impala for tables that will remain in Parquet format. Which actions are consistent with Impala's actual constraint support? (Select 2)(Select 2)

    1. A.Keep PRIMARY KEY and FOREIGN KEY clauses, adding DISABLE NOVALIDATE since they will only be informational
    2. B.Remove CHECK constraints entirely, since Impala has no syntax to express row validation expressions
    3. C.Replace UNIQUE constraints with an equivalent CHECK constraint so uniqueness is still validated
    4. D.Move all NOT NULL constraints onto Kudu tables only, expecting Impala to enforce them there without exception
    5. E.Assume FOREIGN KEY relationships will block orphaned inserts once RELY is specified
    Show answer & explanation

    Correct answers: A, BKeep PRIMARY KEY and FOREIGN KEY clauses, adding DISABLE NOVALIDATE since they will only be informational; Remove CHECK constraints entirely, since Impala has no syntax to express row validation expressions

    • A. Correct. PRIMARY KEY and FOREIGN KEY clauses can be kept as informational metadata on Parquet tables, but they must include DISABLE NOVALIDATE since Impala performs no validation.
    • B. Correct. CHECK constraints have no equivalent in Impala's DDL grammar, so the only consistent action is removing them rather than trying to translate them.
    • C. Incorrect. CHECK constraints are also unsupported in Impala, so substituting one unsupported constraint for another does not achieve validated uniqueness; neither is checked.
    • D. Incorrect. Even on Kudu tables, NOT NULL only applies meaningfully as part of enforced column definitions and does not represent a blanket relocation strategy for all NOT NULL rules from the source schema.
    • E. Incorrect. Specifying RELY only changes how the optimizer treats the relationship for planning purposes; it never causes Impala to block orphaned inserts, since the constraint is still unenforced.

    Subdomain 2.3: Join tables

    10.What result does a standard `INNER JOIN` produce when combining two tables on a matching key?

    1. A.Only the rows where the join key has a match in both tables, discarding rows from either side that have no counterpart.
    2. B.Every row from the left table, filled with nulls for the right table's columns wherever no matching key exists.
    3. C.Every possible combination of rows from both tables, regardless of whether the join key values match at all.
    4. D.Only the columns from the left table, but restricted to rows that have a corresponding match in the right table.
    Show answer & explanation

    Correct answer: AOnly the rows where the join key has a match in both tables, discarding rows from either side that have no counterpart.

    • A. Correct. An `INNER JOIN` returns only rows where the join key exists on both sides, so unmatched rows from either table are excluded from the result.
    • B. Incorrect. This describes a `LEFT OUTER JOIN`, which preserves every left-table row and pads unmatched right-table columns with nulls.
    • C. Incorrect. This describes a `CROSS JOIN`, which produces the full Cartesian product of both tables without evaluating a join key at all.
    • D. Incorrect. Returning only left-table columns for matched rows describes a `LEFT SEMI JOIN`, not a standard inner join.

    Subdomain 2.3: Join tables

    11.A dashboard must list every customer, including those who have never placed an order, alongside any order totals they do have. Which join satisfies this requirement when `customers` is the left table?

    1. A.`LEFT OUTER JOIN` from `customers` to `orders`.
    2. B.`INNER JOIN` from `customers` to `orders`.
    3. C.`LEFT SEMI JOIN` from `customers` to `orders`.
    4. D.`RIGHT ANTI JOIN` from `customers` to `orders`.
    Show answer & explanation

    Correct answer: A`LEFT OUTER JOIN` from `customers` to `orders`.

    • A. Correct. A `LEFT OUTER JOIN` keeps every row from the left table `customers` regardless of a match, while still returning `orders` columns when available.
    • B. Incorrect. An `INNER JOIN` would drop customers with no orders entirely, which fails the requirement to include every customer.
    • C. Incorrect. A `LEFT SEMI JOIN` would only return `customers` columns, omitting the order totals the dashboard needs to display.
    • D. Incorrect. A `RIGHT ANTI JOIN` returns unmatched rows from the right table, not all rows from the left table, so it does not fit this scenario.

    Domain 3: Use Apache Ranger and Atlas

    Subdomain 3.1: Inspect lineage in Apache Atlas

    12.An analyst runs a CTAS (CREATE TABLE AS SELECT) statement in Hive that reads from `orders` and writes into a new table `orders_summary`. After the query completes, what will the Atlas lineage graph for `orders_summary` show?

    1. A.A process node representing the CTAS query connecting `orders` as an ancestor to `orders_summary`
    2. B.Only the `orders_summary` table with no connection back to `orders`, since CTAS creates an independent copy
    3. C.A classification node showing that `orders_summary` inherited a Ranger policy directly
    4. D.A glossary term automatically linking `orders_summary` to the business definition of `orders`
    Show answer & explanation

    Correct answer: AA process node representing the CTAS query connecting `orders` as an ancestor to `orders_summary`

    • A. Correct. Atlas hooks capture the CTAS query as a process entity, and the lineage graph links `orders` as the input ancestor through that process to the newly created `orders_summary` table.
    • B. Incorrect. CTAS is exactly the kind of transformation Atlas tracks through its Hive hook, so the lineage graph does record the connection back to the source table rather than treating the new table as isolated.
    • C. Incorrect. Ranger policies are enforced separately from Atlas lineage; a classification tag, not a policy, is what can propagate through lineage, and even that requires the classification to be marked propagatable.
    • D. Incorrect. Business glossary terms must be assigned manually or via governance workflows; they are not automatically generated from a CTAS lineage relationship.

    Subdomain 3.1: Inspect lineage in Apache Atlas

    13.A newly onboarded analyst notices that a column in a downstream reporting table carries a `PII` classification even though no one manually tagged it. What most likely explains this?

    1. A.The classification propagated automatically through lineage from an upstream source column that already carried the `PII` tag
    2. B.Ranger automatically assigns the `PII` tag to any table accessed by more than one user role
    3. C.Impala inserts a default `PII` classification into every newly created column
    4. D.The Data Catalog service randomly samples column names and applies classifications that match common naming patterns
    Show answer & explanation

    Correct answer: AThe classification propagated automatically through lineage from an upstream source column that already carried the `PII` tag

    • A. Correct. Since Atlas lineage can propagate classifications from a source column to columns created later from the same data, the downstream column inheriting `PII` without manual tagging is expected behavior.
    • B. Incorrect. Ranger enforces access policies but does not assign classifications based on how many roles access a table; classification assignment is an Atlas governance function.
    • C. Incorrect. Impala has no built-in mechanism to insert classification tags into new columns; classifications are an Atlas metadata construct, not a SQL engine feature.
    • D. Incorrect. Classifications are not applied through random sampling of naming patterns; they are assigned manually or propagated deterministically through tracked lineage relationships.

    Subdomain 3.2: Understand that Access Policies in Apache Ranger

    14.In Ranger, what does a resource-based policy directly specify?

    1. A.A specific service resource, such as a database, table, or column, along with the users, groups, or roles permitted to act on it
    2. B.A tag name and the mask type to apply wherever that tag appears across any service
    3. C.A lineage path connecting a source entity to its downstream derived entities
    4. D.A business glossary term and the datasets that should inherit its definition
    Show answer & explanation

    Correct answer: AA specific service resource, such as a database, table, or column, along with the users, groups, or roles permitted to act on it

    • A. Correct. A resource-based policy names an explicit resource hierarchy (for example database > table > column) and attaches allow/deny permissions for specific users, groups, or roles.
    • B. Incorrect. Binding a mask type to a tag name regardless of the underlying resource describes a tag-based policy, not a resource-based one.
    • C. Incorrect. Lineage paths connecting source and derived entities are tracked by Atlas, not defined inside a Ranger resource-based policy.
    • D. Incorrect. Business glossary terms and their inheritance are an Atlas governance feature; Ranger resource-based policies do not reference glossary terms.

    Subdomain 3.2: Understand that Access Policies in Apache Ranger

    15.Which statement correctly distinguishes resource-based policies from tag-based policies in Apache Ranger?

    1. A.Resource-based policies target explicitly named resources, while tag-based policies target any resource carrying a given classification
    2. B.Resource-based policies apply only to Kafka topics, while tag-based policies apply only to Hive tables
    3. C.Resource-based policies are evaluated by Atlas, while tag-based policies are evaluated by Ranger
    4. D.Resource-based policies support masking, while tag-based policies only support allow and deny rules
    Show answer & explanation

    Correct answer: AResource-based policies target explicitly named resources, while tag-based policies target any resource carrying a given classification

    • A. Correct. Resource-based policies enumerate specific resources like a named database, table, or column, whereas tag-based policies apply wherever a referenced classification tag is present, regardless of the resource's identity.
    • B. Incorrect. Resource-based policies are not limited to Kafka topics; they can be defined for any supported service resource, including HDFS, Hive, and HBase.
    • C. Incorrect. Both resource-based and tag-based policies are evaluated by Ranger's policy engine; Atlas only supplies classification metadata, it does not perform policy evaluation.
    • D. Incorrect. Both policy types support masking, row filtering, and allow/deny rules; the distinction is in how the policy targets resources, not which enforcement features are available.

    Subdomain 3.3: Understand that the role of a Data Steward

    16.Which comparison best distinguishes the Data Steward role from a Data Engineer role on a CDP platform?

    1. A.The steward governs and describes data assets, while the engineer builds and maintains the pipelines that move the data
    2. B.The steward writes the Spark jobs that ingest raw files, while the engineer approves who may view the tables
    3. C.The steward tunes JVM heap settings on worker nodes, while the engineer edits glossary definitions in Atlas
    4. D.The steward configures firewall rules for the cluster, while the engineer schedules Ranger policy reviews
    Show answer & explanation

    Correct answer: AThe steward governs and describes data assets, while the engineer builds and maintains the pipelines that move the data

    • A. This is correct because governance and metadata description are the steward's focus, while pipeline construction and data movement are the engineer's focus.
    • B. This reverses the typical responsibilities; building ingestion jobs is engineering work, and access approval is closer to a governance or security role, not swapped this way.
    • C. JVM tuning is a platform operations task, and glossary editing is a steward task, so this pairing misattributes both responsibilities to the wrong role.
    • D. Firewall configuration is a network or security-admin task, and policy review scheduling is closer to a Ranger admin or steward oversight duty, not an engineering task.

    Domain 4: Use Apache Hive and Impala SQL

    Subdomain 4.1: Create new tables or views

    17.By default, without the EXTERNAL keyword, how does Impala's CREATE TABLE statement treat table ownership of data?

    1. A.The table is internal, so Impala manages the data files and deletes them when the table is dropped
    2. B.The table is external, so the data files persist in place after a DROP TABLE
    3. C.The table type depends entirely on the STORED AS clause chosen
    4. D.The table remains unmanaged until an ALTER TABLE SET TBLPROPERTIES statement assigns ownership
    Show answer & explanation

    Correct answer: AThe table is internal, so Impala manages the data files and deletes them when the table is dropped

    • A. Correct. Without EXTERNAL, Impala creates an internal (managed) table by default, meaning Impala owns the data files and removes them when the table is dropped.
    • B. Incorrect. External behavior only applies when the EXTERNAL keyword is explicitly used; the unqualified CREATE TABLE statement defaults to internal, managed ownership.
    • C. Incorrect. The STORED AS clause selects the file format such as Parquet or text, but it has no bearing on whether the table is treated as internal or external.
    • D. Incorrect. Ownership is determined at creation time by the presence or absence of EXTERNAL, not by a later ALTER TABLE statement changing table properties.

    Subdomain 4.1: Create new tables or views

    18.A team wants to create a v2 Iceberg table (supporting row-level deletes) rather than the default v1 format. Which TBLPROPERTIES setting is required at creation time?

    1. A.`'format-version'='2'`
    2. B.`'iceberg.version'='v2'`
    3. C.`'table.type'='ICEBERG_V2'`
    4. D.`'write.delete.mode'='row-level'`
    Show answer & explanation

    Correct answer: A`'format-version'='2'`

    • A. Correct. Setting `'format-version'='2'` in TBLPROPERTIES is the documented way to create a v2 Iceberg table in either Hive or Impala, enabling row-level delete support.
    • B. Incorrect. `iceberg.version` is not the recognized property key; the actual TBLPROPERTIES key used to select the Iceberg table format version is `format-version`.
    • C. Incorrect. `table.type` set to an ICEBERG_V2 string is not part of the documented Iceberg table creation syntax for selecting the format version.
    • D. Incorrect. This property name resembles delete-mode configuration but is not the actual key used to select between Iceberg format versions at table creation.

    Domain 5: Calculator aggregate statistics

    Subdomain 5.1: Work with aggregate functions

    19.When a SELECT statement includes both aggregate functions (like SUM) and non-aggregated columns, what must those non-aggregated columns appear in?

    1. A.The query's GROUP BY clause list
    2. B.The query's ORDER BY clause only
    3. C.A subquery placed in the FROM clause
    4. D.A CASE expression wrapping the column
    Show answer & explanation

    Correct answer: AThe query's GROUP BY clause list

    • A. Any selected column that is not itself wrapped in an aggregate function must be included in GROUP BY so Impala knows how to form the groups.
    • B. ORDER BY controls result ordering and does not satisfy the requirement for grouping non-aggregated columns.
    • C. A subquery is not required simply to include a non-aggregated column alongside aggregates.
    • D. Wrapping a column in CASE does not remove the need to include it in GROUP BY if it is not aggregated.

    Subdomain 5.1: Work with aggregate functions

    20.Which of the following HiveQL functions are NOT supported when writing aggregate queries in Impala? (Select all that apply.)(Select 3)

    1. A.CORR
    2. B.AVG
    3. C.SUM
    4. D.HISTOGRAM_NUMERIC
    5. E.COUNT
    6. F.PERCENTILE
    Show answer & explanation

    Correct answers: A, D, FCORR; HISTOGRAM_NUMERIC; PERCENTILE

    • A. CORR computes a correlation coefficient in HiveQL and has no Impala equivalent.
    • B. AVG is a standard aggregate function that Impala fully supports.
    • C. SUM is a standard aggregate function that Impala fully supports.
    • D. HISTOGRAM_NUMERIC builds a numeric histogram in HiveQL and has no Impala equivalent.
    • E. COUNT is a standard aggregate function that Impala fully supports.
    • F. PERCENTILE computes exact percentiles in HiveQL and has no Impala equivalent.

    Domain 6: Hive and Impala Optimization

    Subdomain 6.1: Understand the use of Pushing the filter condition

    21.A table `orders` is partitioned by `order_year` and holds ten years of history. An analyst runs `SELECT * FROM orders WHERE order_year = 2025 AND status = 'SHIPPED';`. What performance benefit does the `order_year = 2025` predicate provide?

    1. A.Impala prunes the scan to only the `order_year=2025` partition directory, skipping the data files for the other nine years entirely
    2. B.Impala scans all ten years of partition directories but applies the `order_year` filter in memory after reading every row into the coordinator
    3. C.Impala rewrites the query to scan the `status` column first because string filters are always evaluated before partition filters
    4. D.Impala caches the entire ten-year table in memory the first time the query runs so later filters skip disk reads
    Show answer & explanation

    Correct answer: AImpala prunes the scan to only the `order_year=2025` partition directory, skipping the data files for the other nine years entirely

    • A. This is correct: because `order_year` is the partition key, Impala can determine from metadata alone which partition directory satisfies the predicate and skip reading the rest, which is partition pruning.
    • B. Reading every partition and filtering afterward in memory would defeat the purpose of partitioning and is not how Impala evaluates a literal equality predicate on a partition key.
    • C. Impala does not reorder evaluation so that non-partition string filters run before partition-key filters; partition pruning on `order_year` happens at the metadata level regardless of filter ordering in the query text.
    • D. Impala does not automatically cache an entire table in memory on first use; the performance gain here comes from skipping partition directories, not from a memory cache.

    Subdomain 6.2: Understand the use of Bucketing

    22.Which statement creates a Hive table bucketed into 8 files on the `customer_id` column?

    1. A.`CREATE TABLE orders (customer_id INT, amount DOUBLE) CLUSTERED BY (customer_id) INTO 8 BUCKETS`
    2. B.`CREATE TABLE orders (customer_id INT, amount DOUBLE) PARTITIONED BY (customer_id) INTO 8 FILES`
    3. C.`CREATE TABLE orders (customer_id INT, amount DOUBLE) BUCKET BY (customer_id) LIMIT 8`
    4. D.`CREATE TABLE orders (customer_id INT, amount DOUBLE) DISTRIBUTE BY (customer_id) ROWS 8`
    Show answer & explanation

    Correct answer: A`CREATE TABLE orders (customer_id INT, amount DOUBLE) CLUSTERED BY (customer_id) INTO 8 BUCKETS`

    • A. `CLUSTERED BY (column) INTO n BUCKETS` is the correct Hive DDL syntax for declaring a bucketed table with a specific number of bucket files. This statement bucketing on `customer_id` into 8 files is valid.
    • B. `PARTITIONED BY` declares a partition column and does not accept an `INTO n FILES` clause; partitioning creates one directory per distinct value, not a fixed file count. This syntax is not valid Hive DDL.
    • C. `BUCKET BY ... LIMIT` is not valid Hive syntax for creating bucketed tables. The correct keyword pairing is `CLUSTERED BY ... INTO n BUCKETS`.
    • D. `DISTRIBUTE BY` is a clause used in `SELECT` queries to control reducer distribution, not a table creation clause for defining bucket files. This statement would not create a bucketed table.

    Subdomain 6.2: Understand the use of Bucketing

    23.A retail analyst is deciding which column to use for `CLUSTERED BY` on a large `sales` table that is joined against a `customers` table on `customer_id`, and also has a `region` column with only 6 distinct values. Which column choice and reasoning is most appropriate?

    1. A.Bucket on `customer_id` because it has high cardinality and is the column used to join against `customers`
    2. B.Bucket on `region` because a small, fixed number of distinct values keeps bucket files small and easy to manage
    3. C.Bucket on both `customer_id` and `region` together to maximize the number of bucket files created
    4. D.Bucket on a synthetic row number column so every bucket receives exactly one row per file
    Show answer & explanation

    Correct answer: ABucket on `customer_id` because it has high cardinality and is the column used to join against `customers`

    • A. A good bucketing column has high cardinality and is frequently used in joins, since matching buckets between the two tables enables efficient bucket-aligned joins. `customer_id` satisfies both criteria here.
    • B. Bucketing on a low-cardinality column like `region` with only 6 distinct values causes hashing to distribute rows unevenly across buckets, since the hash space is effectively limited to 6 outcomes regardless of the requested bucket count. This produces skewed, poorly balanced bucket files.
    • C. Hive `CLUSTERED BY` bucketing hashes on the specified column set as a whole and does not combine columns to intentionally maximize file count; adding a low-cardinality column to a high-cardinality one adds no join benefit here and complicates the layout.
    • D. A synthetic row number is effectively unique per row, so hashing on it would scatter data with no meaningful grouping and defeats the purpose of clustering related rows together for joins or sampling.

    Subdomain 6.3: Understand how File format Optimization

    24.A data engineering team scans a single column across a billion-row Parquet table just to compute an aggregate. They want to balance faster scan performance against reasonably compact file sizes, without manually specifying an unusual codec. Which compression codec should they choose for the Parquet files?

    1. A.GZip, because shrinking the data by roughly 40% more than Snappy always outweighs the additional CPU cost during scans.
    2. B.Snappy, because it is the default codec that combines fast compression and decompression with a reasonable reduction in file size.
    3. C.Zstd, because it is the codec Impala selects automatically whenever no PARQUET_COMPRESSION_CODEC is specified.
    4. D.No compression, because leaving files uncompressed always minimizes total query latency regardless of column count scanned.
    Show answer & explanation

    Correct answer: BSnappy, because it is the default codec that combines fast compression and decompression with a reasonable reduction in file size.

    • A. GZip does shrink Parquet data more than Snappy, but that extra compression comes with higher CPU cost during both write and scan, which works against the team's priority of faster scans.
    • B. Snappy is the default Parquet codec because its fast compression and decompression give a good balance between scan speed and storage savings, which matches a team that wants both without picking an unusual codec.
    • C. Snappy, not Zstd, is the codec Impala applies by default when no compression codec is explicitly configured for Parquet output.
    • D. Uncompressed scans can be marginally faster for a single-column aggregate, but the option overstates this as always minimizing total latency and ignores the storage cost the team also cares about.

    Subdomain 6.4: Work with Compute Stats

    25.What is the primary purpose of running `COMPUTE STATS` on an Impala table?

    1. A.To collect row counts and column statistics that the query planner uses to choose join order and resource allocation.
    2. B.To enforce primary key and foreign key constraints across the table's partitions.
    3. C.To physically compact small files into fewer, larger Parquet files on HDFS.
    4. D.To automatically create new partitions based on values found in a specified column.
    Show answer & explanation

    Correct answer: ATo collect row counts and column statistics that the query planner uses to choose join order and resource allocation.

    • A. This is correct: table-level row counts and per-column statistics such as NDV, null counts, and average size give the cost-based optimizer the information it needs to estimate join costs and pick an efficient execution plan.
    • B. Impala does not enforce primary key or foreign key constraints, and statistics collection has nothing to do with constraint enforcement, so this is incorrect.
    • C. Compacting small files is a file-management concern handled separately (e.g., via INSERT OVERWRITE or reloading data), not something statistics collection performs.
    • D. Statistics collection reads existing partitions to gather metrics; it does not create new partitions or infer partition boundaries from data.

    Subdomain 6.4: Work with Compute Stats

    26.For a partitioned table, what happens the first time `COMPUTE INCREMENTAL STATS` is run, compared to subsequent runs?

    1. A.The first run scans every partition in the table, while later runs only process partitions that lack incremental statistics.
    2. B.The first run only samples a 10 percent subset of rows, while later runs scan the full table each time.
    3. C.The first run computes only column statistics, while later runs add table-level row counts on top.
    4. D.The first run and every later run always rescan all partitions regardless of whether stats already exist.
    Show answer & explanation

    Correct answer: AThe first run scans every partition in the table, while later runs only process partitions that lack incremental statistics.

    • A. This is correct: the initial run of incremental stats has no prior statistics to build on, so it scans the whole table, while later runs process only newly added or modified partitions that are still missing incremental stats.
    • B. Sampling with a fixed percentage is part of the separate, opt-in extrapolation and sampling feature, not the default behavior of the first incremental stats run.
    • C. Both table-level and column-level statistics are gathered together on each run; the split described here does not reflect how incremental stats work.
    • D. Rescanning every partition on every run is what makes plain `COMPUTE STATS` costly on large tables; the incremental variant exists specifically to avoid that on later runs.

    Domain 7: Data Management and Storage

    Subdomain 7.1: Understand where/how the data is stored/accessed in HDFS

    27.Which statement should an analyst run to find the exact HDFS path, file format, and internal/external status of an existing Impala table?

    1. A.DESCRIBE FORMATTED table_name
    2. B.SHOW FILES table_name
    3. C.EXPLAIN table_name
    4. D.ANALYZE TABLE table_name
    Show answer & explanation

    Correct answer: ADESCRIBE FORMATTED table_name

    • A. Correct. DESCRIBE FORMATTED returns detailed metadata including the table's HDFS location, storage/file format, and whether it is EXTERNAL or managed.
    • B. Incorrect. SHOW FILES lists the data files belonging to a table or partition but is not the standard statement used to report the table's format and internal/external classification.
    • C. Incorrect. EXPLAIN produces the execution plan for a query, not metadata about a table's storage location or type.
    • D. Incorrect. ANALYZE TABLE is not a valid Impala statement for retrieving table metadata; statistics are gathered with COMPUTE STATS instead.

    Subdomain 7.1: Understand where/how the data is stored/accessed in HDFS

    28.An analyst wants each new HDFS subdirectory that Impala creates for an INSERT into a partitioned table to automatically match the permissions of its parent partition directory. Which configuration accomplishes this?

    1. A.Starting the impalad daemon with the `--insert_inherit_permissions` option enabled
    2. B.Setting the table property `PARTITION_INHERIT=true` in the CREATE TABLE statement
    3. C.Running `ALTER TABLE ... SET LOCATION` before every INSERT
    4. D.Granting the impala user superuser privileges on the HDFS NameNode
    Show answer & explanation

    Correct answer: AStarting the impalad daemon with the `--insert_inherit_permissions` option enabled

    • A. Correct. The `--insert_inherit_permissions` startup flag for impalad makes newly created partition subdirectories inherit the permissions of their parent directory instead of receiving the default impala-user permissions.
    • B. Incorrect. There is no `PARTITION_INHERIT` table property in Impala; permission inheritance for new subdirectories is controlled at the daemon startup level, not per-table DDL.
    • C. Incorrect. Changing a table's LOCATION repoints where the table reads from and does not affect the permission behavior applied to subdirectories created during inserts.
    • D. Incorrect. Granting broad superuser access changes what the impala user can do but does not configure automatic inheritance of parent-directory permissions for new subdirectories.

    Subdomain 7.2: Understand the ways to store query results into a table or directory

    29.A dashboard needs to refresh a reporting table nightly with the full, latest aggregated result of a query, discarding whatever data was there from the previous night. Which single statement best fits this recurring workflow, assuming the table already exists?

    1. A.INSERT OVERWRITE reporting_table SELECT ... FROM raw_events
    2. B.INSERT INTO reporting_table SELECT ... FROM raw_events
    3. C.CREATE TABLE reporting_table AS SELECT ... FROM raw_events
    4. D.INSERT OVERWRITE DIRECTORY '/warehouse/reporting_table' SELECT ... FROM raw_events
    Show answer & explanation

    Correct answer: AINSERT OVERWRITE reporting_table SELECT ... FROM raw_events

    • A. INSERT OVERWRITE replaces the table's existing data files with the freshly computed result set each run, which matches the nightly full-refresh requirement while keeping the same table identity for the dashboard to query.
    • B. INSERT INTO appends new rows on top of the previous night's data instead of replacing it, so the table would accumulate duplicate aggregates rather than reflecting only the latest results.
    • C. CREATE TABLE AS SELECT would attempt to create a table that already exists, which errors out on a table with the same name rather than refreshing it in place.
    • D. Writing to the underlying warehouse directory directly bypasses the metastore-tracked table lifecycle and is not the supported way to refresh a catalog table's contents.

    Subdomain 7.3: Different between External and Managed tables

    30.A junior analyst wants to build a table over an existing Parquet dataset located at `/data/finance/transactions` in HDFS, produced by an upstream ETL job outside of Impala, and must not disturb that upstream job's ability to keep writing new files to the same path. Which `CREATE TABLE` clause combination is appropriate?

    1. A.EXTERNAL keyword together with a LOCATION clause pointing to the existing path
    2. B.No EXTERNAL keyword, with a LOCATION clause pointing to the existing path
    3. C.EXTERNAL keyword with no LOCATION clause, relying on the default work area
    4. D.STORED AS KUDU with a LOCATION clause pointing to the existing path
    Show answer & explanation

    Correct answer: AEXTERNAL keyword together with a LOCATION clause pointing to the existing path

    • A. This is correct because combining `EXTERNAL` with `LOCATION` registers the table over the existing files without Impala taking ownership, so the upstream job can keep writing there safely.
    • B. This is incorrect because omitting `EXTERNAL` while pointing `LOCATION` at an existing shared path still creates an internal table, meaning a later `DROP TABLE` would delete the upstream job's files.
    • C. This is incorrect because omitting `LOCATION` on an external table leaves it pointing at Impala's default warehouse directory instead of the actual dataset path, so it would not read the existing files.
    • D. This is incorrect because Kudu tables use Kudu's own storage engine rather than referencing existing HDFS Parquet files, so `STORED AS KUDU` is not applicable here.

    Subdomain 7.4: Use partitioning

    31.Which statement correctly adds a new partition to an existing partitioned Impala table for a partition value that does not yet exist?

    1. A.ALTER TABLE sales ADD PARTITION (sale_year=2025)
    2. B.INSERT PARTITION sales (sale_year=2025)
    3. C.CREATE PARTITION sales (sale_year=2025)
    4. D.UPDATE TABLE sales ADD PARTITION (sale_year=2025)
    Show answer & explanation

    Correct answer: AALTER TABLE sales ADD PARTITION (sale_year=2025)

    • A. `ALTER TABLE ... ADD PARTITION` is the correct DDL for registering a new partition, with an optional value, directory, or file format for an already partitioned table.
    • B. There is no `INSERT PARTITION` DDL statement in Impala; INSERT statements load rows into partitions but do not register new partition definitions using this syntax.
    • C. `CREATE PARTITION` is not valid Impala syntax; partitions are added to an existing table with an ALTER TABLE statement, not a standalone CREATE statement.
    • D. `UPDATE TABLE` is not valid Impala DDL syntax for modifying table structure such as adding partitions.

    Subdomain 7.4: Use partitioning

    32.An engineer loads new partition files into HDFS directly through Hive for a table that Impala also queries. After the Hive job completes, analysts querying the table through Impala do not see the new data. What should the engineer do to make Impala aware of the change?

    1. A.Run REFRESH on the table so Impala reloads its metadata for the affected partitions
    2. B.Restart the Impala catalog service, since metadata changes are only picked up after a full service restart
    3. C.Rerun COMPUTE STATS on the table, since statistics recomputation also reloads partition file listings
    4. D.Drop and recreate the table definition so Impala rebuilds the partition directory structure
    Show answer & explanation

    Correct answer: ARun REFRESH on the table so Impala reloads its metadata for the affected partitions

    • A. When files are added outside of Impala, such as through Hive, running REFRESH (optionally scoped to a specific partition) tells Impala to reload the list of data files for that table or partition without a full metadata reload.
    • B. A full catalog service restart is unnecessary and disruptive; REFRESH is the lightweight, purpose-built statement for picking up externally added data files.
    • C. COMPUTE STATS updates table and column statistics used for query planning, but it is not the mechanism for detecting new data files added outside of Impala.
    • D. Dropping and recreating the table is unnecessarily destructive and risks losing table metadata or permissions; REFRESH accomplishes the same goal without recreating the table.

    Domain 8: Cloudera Data Warehouse

    Subdomain 8.1: Understand how to manage virtual warehouse

    33.Which of the following are valid t-shirt size options for a Virtual Warehouse in Cloudera Data Warehouse? (Select 3)(Select 3)

    1. A.XSMALL
    2. B.SMALL
    3. C.MEDIUM
    4. D.PLATINUM
    5. E.GIGA
    6. F.NANO
    Show answer & explanation

    Correct answers: A, B, CXSMALL; SMALL; MEDIUM

    • A. This is one of the standard t-shirt sizes offered for Virtual Warehouse compute, typically recommended for evaluation and light workloads.
    • B. This is one of the standard t-shirt sizes offered for Virtual Warehouse compute, sitting above the smallest tier for slightly larger workloads.
    • C. This is one of the standard t-shirt sizes offered for Virtual Warehouse compute, providing additional executor capacity for moderate concurrency.
    • D. This is not one of the standard CDW t-shirt size names used for Virtual Warehouse compute sizing.
    • E. This is not one of the standard CDW t-shirt size names used for Virtual Warehouse compute sizing.
    • F. This is not one of the standard CDW t-shirt size names used for Virtual Warehouse compute sizing.

    Subdomain 8.2: Understand the Use of Data Catalog Service

    34.Where are queries and query history saved when a user runs SQL through Hue in Cloudera Data Warehouse?

    1. A.In the Database Catalog associated with that user's Hue instance
    2. B.In a separate object storage bucket unrelated to any Database Catalog
    3. C.Only in the local browser cache of the user who ran the query
    4. D.In the Virtual Warehouse compute node logs, discarded on suspension
    Show answer & explanation

    Correct answer: AIn the Database Catalog associated with that user's Hue instance

    • A. Queries and query history saved in the Hue database are stored in the Database Catalog, keeping them tied to the metadata layer rather than to a specific compute session.
    • B. Query history is not written to an unrelated object storage bucket; it is stored within the Database Catalog's Hue database.
    • C. Storing history only in a browser cache would make it disappear across devices and sessions, which is not how Hue persists this data.
    • D. Compute node logs are ephemeral and tied to warehouse uptime, whereas query history persists in the Database Catalog independent of warehouse suspension.

    Subdomain 8.2: Understand the Use of Data Catalog Service

    35.A team wants to isolate a new set of development tables and permissions from the production tables already registered in the environment's default Database Catalog, without provisioning a new environment. What should they do?

    1. A.Create an additional Database Catalog in the environment for the development tables
    2. B.Rename the default Database Catalog so development tables are stored under a new alias
    3. C.Suspend the environment and reactivate it to force a fresh default Database Catalog
    4. D.Ask CDP support to move the environment into an entirely different CDP account
    Show answer & explanation

    Correct answer: ACreate an additional Database Catalog in the environment for the development tables

    • A. Creating an additional Database Catalog in the same environment isolates the development team's tables and permissions from production without the overhead of a new environment.
    • B. Renaming the existing catalog does not create separation; production and development metadata would still live in the same catalog.
    • C. Reactivating the environment does not reset or replace the existing default catalog and would not achieve isolation.
    • D. Moving accounts is a disproportionate and unrelated action when adding a second catalog inside the existing environment solves the isolation need.

    Want the full experience?

    These are just samples. Practice the full Cloudera CDP Data Analyst (CDP-4001) question bank in quiz mode — free, no signup, with domain practice and exam simulation.