Skip to content

Profile Operation

The Profile operation examines the containers and records selected in its scope, then records statistics and observed patterns for their fields. Read settings such as thresholds and record limits determine which records are included.

When AI Effort is enabled, Profile uses those observations to generate, validate, and maintain most AI Managed checks. Oversight determines whether new checks become Active automatically or remain Draft for review. These checks provide starting coverage from observed behavior. Data stewards still decide whether they fit the business use of the data and add Authored checks for requirements that Profile cannot infer. Volumetric and Freshness checks are maintained separately from recorded Observability measurements.

This guide explains how to choose the Profile scope, read settings, AI Effort, Oversight, and schedule options.

How Profiling Works

Fields Identification

Profile identifies the fields in the selected containers. The operation scope controls which tables, files, or tagged groups are included.

Statistical Data Gathering

Profile calculates statistics for each field based on its declared or detected data type. Available measures can include minimum and maximum values, mean, standard deviation, completeness, value distributions, and other type-specific statistics. Use these results to understand what was observed in the profiled records.

Metadata Generation

Qualytics records the calculated statistics as profile metadata. When AI Effort is enabled, the observed metadata provides the basis for candidate AI Managed checks.

Data Quality Checks

Qualytics validates candidate AI Managed checks against the data included in Profile before creating them. This validation shows that a candidate fits the profiled data, but it does not establish that the rule reflects every business requirement or future condition. Use Oversight to keep new checks in Draft when they require review before activation.

Step 1: Select a source datastore from the side menu on which you would like to perform the profile operation.

Select a source datastore from the side menu

Step 2: Clicking on your preferred datastore will navigate you to the datastore details page. Within the overview tab (default view), click on the Run button under Profile to initiate the profile operation.

Run button under Profile in the datastore overview

Configuration

Step 1: Click on the Run button to initiate the profile operation.

Initiate profile operation button

Note

Run Profile again when you need updated statistics and Profile-generated AI Managed checks based on more recent data. Choose a schedule that reflects how often the source changes and when your team wants to review new results. See Schedule below.

User-edited checks are protected

Profile only refreshes AI Managed checks that are still managed by Qualytics. As soon as a user edits an evaluation property of an AI Managed check (rule properties, coverage, filter clause, or fields), the check is converted to Authored and subsequent Profile runs leave it alone. Your tuning is preserved across runs. See AI Managed Checks Introduction for the full conversion behavior.

Step 2: Select tables (in your JDBC datastore) or file patterns (in your DFS datastore) and tags you would like to be profiled.

1. All Tables/File Patterns

This option includes all tables or files currently available in the datastore for profiling. Selecting this will profile every table within the source datastore without the need for further selection.

Select all tables or file patterns for profiling

2. Specific

This option allows users to manually select individual tables or files for profiling. It provides the flexibility to focus on particular tables of interest, which can be useful if the user is only interested in a subset of the available data.

Select specific tables for profiling

3. Tag

This option automatically profiles tables associated with selected tags. Tags are used to categorize tables, and by selecting a specific tag, all tables associated with that tag will be profiled. This option helps in managing and profiling grouped data efficiently.

Select tables by tag for profiling

Step 3: After making the relevant selections, click on the Next button to configure the Operation Settings.

Next button to configure operation settings

Step 4: Configure the following two Read Settings:

  • Starting Threshold
  • Record Limit

Starting Threshold

This setting allows users to specify a minimum incremental identifier value to set a starting point for the profile operation. It helps in filtering data from a specific point in time or a particular batch value.

  • Greater Than Time: Users can select a timestamp in UTC to start profiling data from a specific time onwards. This is useful for focusing on recent data or data changes since a particular time.

  • Greater Than Batch: Users can enter a batch value to start profiling from a specific batch. This option is helpful for scenarios where data is processed in batches, allowing the user to profile data from a specific batch number onwards.

Note

The starting threshold i.e. Greater Than Time and Greater Than Batch are applicable only to the tables or files with an incremental timestamp strategy.

Starting threshold configuration with greater than time and batch options

Record Limit

Define the number of records to be profiled per table: This feature allows users to manually enter a custom record limit value using a text field in the profile operation. This setting helps in controlling the scope of the profiling operation, particularly for large datasets, by capping the number of records to analyze.

Record limit input field

You can also use a drop-down menu to quickly select from commonly used limits such as 1M, 10M, 100M, and All.

Record limit dropdown with preset values

Note

The number of records must be between 1 and 1,000,000,000.

Step 5: After making the relevant selections, click on the Next button to configure the AI Management step.

Next button to configure AI Management step

Step 6: Configure the two sections inside the AI Management step:

  • Effort
  • Oversight

Effort

The AI Effort setting controls how much work Qualytics AI puts into generating data quality checks during profiling. Selecting a higher level expands the families of checks AI considers; selecting a lower level limits AI to faster, simpler checks (or disables AI generation entirely).

The control is a labeled scale with six clickable markers. Selecting a level shows a plain-language description of what AI does at that level.

Default Configuration

By default, AI Effort is set to Medium, which balances coverage and runtime for most datasets. You can adjust the level at any time based on the depth of analysis you want AI to perform.

Default AI Effort configuration set to Medium

AI Effort Levels

The AI Effort scale has six levels. Each higher level includes all the check families from the previous levels and adds new ones, so depth and runtime grow together.

Note

Each level includes all the check families from the previous levels and adds new ones specific to that level. For example, Low focuses on basic checks; Medium adds value-range and pattern checks on top of those; Max covers all check families AI can generate.

Off

At this level, Profile does not generate or update Profile-generated AI Managed checks. Qualytics still records profile statistics. Use Off when your team wants Profile to collect observations without proposing checks from them. This setting does not disable Observability-managed Volumetric or Freshness checks.

AI Effort set to Off with no automatic checks

Low: Basic Data Integrity and Simple Value Threshold Checks

The fastest level. Catches basics like missing values, negative numbers, future dates, and unexpected values in known-option fields. Included check families:

  • Completeness Checks: Ensure data fields are complete if previously complete.

  • Categorical Range Checks: Validate if values fall within a predefined set of categories.

  • Non-Negative Numbers: Ensure numeric values are non-negative.

  • Non-Future Date/Time: Ensure datetime values are not set in the future.

Use Case: Suitable for datasets where basic integrity checks are sufficient.

The following table shows the AI Managed check families that Profile can generate from observed data at Low.

AI Managed Checks Reference
Not Null (record) See more.
Any Not Null (record) See more.
Expected Values (record) See more.
Not Negative See more.
Not Future See more.

AI Effort set to Low with basic integrity checks

Medium: Value Range and Pattern Checks

Balanced. Adds checks for unusual value ranges, unexpected text formats, and fields that should be unique. Included check families:

  • Date Range Checks: Ensure dates fall within a specified range.

  • Numeric Range Checks: Validate that numeric values are within acceptable ranges.

  • String Pattern Checks: Ensure strings match specific patterns (e.g., email formats).

  • Approximate Uniqueness: Validate uniqueness of values if they are approximately unique.

Use Case: Ideal for datasets where patterns and ranges are important for ensuring data quality.

The following table shows the four additional AI Managed check families Profile can generate at Medium.

AI Managed Checks Reference
Between Times See more.
Between See more.
Matches Pattern See more.
Unique See more.

AI Effort set to Medium with value range and pattern checks

High: Time Series and Comparative Relationship Checks

Deeper. Adds checks that spot mismatches between related fields, including time-series patterns and comparative relationships between datasets. Included check families:

  • Date Granularity Checks: Ensure the granularity of date values is consistent (e.g., day, month, year).

  • Consistent Relationships: Validate that relationships between overlapping datasets are consistent.

Use Case: Suitable for scenarios where data quality depends on time-series data or when comparing data across different datasets.

The following table shows the eight additional AI Managed check families Profile can generate at High.

AI Managed Checks Reference
Time Distribution Size See more.
After Date Time See more.
Before Date Time See more.
Greater Than See more.
Greater Than Field See more.
Less Than See more.
Less Than Field See more.
Equal To Field See more.

AI Effort set to High with time series and comparative checks

Extra High: Linear Regression and Cross-Datastore Relationship Checks

Intensive. Adds predictive checks that flag values inconsistent with others in the same row (powered by linear regression models) and validate relationships across different data stores. Included check families:

  • Linear Regression Checks: Validate data using regression models to identify trends and outliers.

  • Cross-Datastore Relationships: Ensure that data relationships are maintained across different data sources.

Use Case: Best for complex datasets where advanced analytical checks are necessary.

The following table shows the three additional AI Managed check families Profile can generate at Extra High.

AI Managed Checks Reference
Data Diff See more.
Exists In See more.
Predicted By See more.

AI Effort set to Extra High with regression and cross-datastore checks

Max: Shape Checks

Maximum. Adds fine-grained checks for patterns, completeness, and date precision (uses statistical distribution analysis), validating the shape of distribution patterns that appear in your data. Included check families:

  • Shape Checks: Checks that define an expectation for some percentage of your data less than 100%. The property “coverage” holds the percentage of your data for which the expressed check should be true.

Use Case: Ideal for scenarios where each incremental set of scanned data should exhibit the same distributions of values as the training set. For example, a transactions table is configured for a weekly incremental scan after each week’s data is loaded. A shape check could define that 80% of all transactions are expected to be performed using “cash” or “credit”.

The following table shows the three additional AI Managed check families Profile can generate at Max.

AI Managed Checks Reference
Expected Values (Shape) See more.
Matches Pattern (Shape) See more.
Not Null (Shape) See more.

AI Effort set to Max with shape checks

Warning

On each Profile run (when AI Effort ≠ Off), Qualytics AI regenerates a fresh set of Profile-generated AI Managed checks based on the current data and effort level. Any Profile-generated AI Managed check from a previous run that isn't regenerated can be discarded. For example, when you lower AI Effort, checks from families that are no longer evaluated can be removed.

The following checks are outside that removal path:

  • Checks you've edited: Evaluation edits convert the check to Authored, so later Profile runs leave it unchanged.
  • Observability-managed checks: Volumetric and Freshness checks are maintained from recorded measurements rather than Profile regeneration.
  • Checks supported by your feedback: Marking an anomaly produced by a check as Resolved increases the check's inference confidence and can protect it from removal on later Profile runs.

Oversight

Use the Activate AI managed checks toggle to control the initial status of newly generated AI Managed checks:

  • Toggle ON: Checks are created in Active status.
  • Toggle OFF: Checks are created in Draft status, so you can review and activate them manually.

Note

Qualytics validates candidate AI Managed checks against the profiled data before creating them. Oversight controls whether they are activated automatically or created in Draft. Review important checks against the business purpose of the data before relying on them.

Activate AI managed checks toggle

User Overrides on AI Managed Checks

When you edit an AI Managed check's assertion (for example, adjusting its filter or coverage), the platform records the override and continues to honor it on subsequent profile operations. AI will not overwrite your adjustments. Once you take ownership, future profile runs treat the check as Authored and skip regenerating it.

Run Now

Click on the Run Now button, and perform the profile operation immediately.

Run Now button to execute profile operation immediately

Schedule

Timezone-aware scheduling

Schedules can run in any IANA timezone (for example, America/New_York, Europe/Paris, Asia/Tokyo), and Daylight Saving Time transitions are handled automatically. UTC is the default for new and existing schedules. The configured timezone is shown on the schedule card as an abbreviation, such as Schedule (UTC) by default or Schedule (EST) after selecting another timezone.

Deactivating a schedule keeps its cron expression

When you deactivate a schedule, its cron expression is kept. Reactivating it later resumes the same schedule without setting it up again.

If a schedule was deactivated before May 7, 2026 and doesn't run after you reactivate it, re-enter its cron expression once to restore it. Schedules deactivated on or after that date keep working normally.

Step 1: Click on the Schedule button to configure the available schedule options in the profile operation.

Schedule button to configure profile operation scheduling

Step 2: Choose the Timezone for this schedule. UTC is selected by default. To run in a different timezone, type to search by city, region, or abbreviation and pick an IANA timezone from the list. The selected timezone applies to every tab below, and the banner above the tabs shows the current time in that timezone.

Step 3: Set the scheduling preferences for the profile operation.

1. Hourly: This option allows you to schedule the profile operation to run every hour at a specified minute. You can define the frequency in hours and the exact minute within the hour the profiling should start. Example: If set to "Every 1 hour(s) on minute 0," the profile operation will run every hour at the top of the hour (e.g., 1:00, 2:00, 3:00).

Hourly schedule configuration

2. Daily: This option schedules the profile operation to run once every day at a specific time. You specify the number of days between operations and the exact time of day in the selected timezone. Example: If set to "Every 1 day(s) at 00:00" with the timezone set to UTC, the profile operation will run every day at midnight UTC.

Daily schedule configuration

3. Weekly: This option schedules the profile operation to run on specific days of the week at a set time. You select the days of the week and the exact time of day in the selected timezone for the profile operation to run. Example: If configured to run on "Sunday" and "Friday" at 00:00 with the timezone set to UTC, the profile operation will execute at midnight UTC on these days.

Weekly schedule configuration

4. Monthly: This option schedules the profile operation to run once a month on a specific day at a set time. You specify the day of the month and the time of day in the selected timezone. If set to "On the 1st day of every 1 month(s), at 00:00" with the timezone set to UTC, the profile operation will run on the first day of each month at midnight UTC.

Monthly schedule configuration

5. Advanced: The advanced section for scheduling operations allows users to set up more complex and custom scheduling using Cron expressions. This option is particularly useful for defining specific times and intervals for profile operations with precision.

Cron expressions are a powerful and flexible way to schedule tasks. They use a syntax that specifies the exact timing of the task based on five fields:

  • Minute (0 - 59)
  • Hour (0 - 23)
  • Day of the month (1 - 31)
  • Month (1 - 12)
  • Day of the week (0 - 6) (Sunday to Saturday)

Each field can be defined using specific values, ranges, or special characters to create the desired schedule.

Example: For instance, the Cron expression 0 0 * * * schedules the profile operation to run at midnight (00:00) every day. Here’s a breakdown of this expression:

  • 0 (Minute) - The task will run at the 0th minute.
  • 0 (Hour) - The task will run at the 0th hour (midnight).
  • *(Day of the month) - The task will run every day of the month.
  • *(Month) - The task will run every month.
  • *(Day of the week) - The task will run every day of the week.

Users can define other specific schedules by adjusting the Cron expression. For example:

  • 0 12 * * 1-5 - Runs at 12:00 PM from Monday to Friday.
  • 30 14 1 * * - Runs at 2:30 PM on the first day of every month.
  • 0 22 * * 6 - Runs at 10:00 PM every Saturday.

To define a custom schedule, enter the appropriate Cron expression in the Custom Cron Schedule field before specifying the schedule name. The field label shows the abbreviation for the currently selected timezone (for example, Custom Cron Schedule (UTC) or Custom Cron Schedule (EST)), and the cron fields are interpreted in that timezone.

Advanced schedule configuration with cron expression

Step 4: Define the Schedule Name to identify the scheduled operation at the running time.

Schedule name input field

Step 5: Click on the Schedule button to activate your profile operation schedule.

Schedule confirm button to activate the profile operation schedule

Note

You will receive a notification when the profile operation is completed.

Daylight Saving Time

When you pick a timezone that observes DST (such as America/New_York or Europe/London), the schedule automatically shifts with each transition. A job set to run at 9:00 AM in America/New_York runs at 9:00 AM local time year-round, regardless of whether the zone is in EST or EDT at the time. No reconfiguration is required.

Field Masking and Profiling

Profiling runs normally on masked fields. Masking does not affect the collection of statistical metadata. The platform continues to compute all profile metrics (distinct values, min/max, mean, standard deviation, completeness, etc.) using the actual source data.

However, when profile results are displayed or exported, masked field values are obfuscated:

  • Field Profile Histograms in the UI show obfuscated bucket values for masked fields
  • Exported Field Profiles (_field_profiles_export) written to the enrichment datastore contain obfuscated histogram values for masked fields

Info

To obtain revealed histogram data in exported field profiles, enable the Reveal Masked Values toggle when triggering the Export operation, or pass include_masked=true via the API. See Field Masking and Export for details.

Operation Insights

When the profile operation is completed, you will receive the notification and can navigate to the Activity tab for the datastore on which you triggered the Profile Operation and learn about the operation results.

Top Panel

  1. Runs (Default View): Provides insights into the operations that have been performed

  2. Schedule: Provides insights into the scheduled operations.

  3. Search: Search any operation (including profile) by entering the operation ID

  4. Sort by: Organize the list of operations based on the Created Date or the Duration.

  5. Filter: Narrow down the list of operations based on:

  6. Type: the kind of operation, such as Sync, Profile, or Scan

  7. Status: the operation result, such as Success, Failure, Running, Queued, or Aborted
  8. Table: the container the operation ran on. On DFS datastores this row is labeled File
  9. Has logs: a toggle that narrows the list to operations that recorded log messages

Activity tab top panel with runs, schedule, search, sort, and filter options

Activity Heatmap

The activity heatmap shown in the snippet below represents activity levels over a period, with each square indicating a day and the color intensity representing the number of operations or activities on that day. It is useful in tracking the number of operations performed on each day within a specific timeframe.

Tip

You can click on any of the squares from the Activity Heatmap to filter operations

Activity heatmap showing operation frequency over time

Operation Detail

Queued

This status indicates that the profile operation was submitted and is waiting to be picked up for processing. The operation stays in Queued while earlier work finishes, then moves to Running automatically once processing begins. A profile operation having a queued status reflects the following details and actions:

  • The progress bar shows how long the operation has been waiting (for example, Queued for 2 minutes).
  • The Abort button lets you stop the operation before it starts.
  • You can filter the operations list by the Queued status.

Running

This status indicates that the profile operation is still running at the moment and is yet to be completed. A profile operation having a running status reflects the following details and actions:

No. Parameter Interpretation
1. Operation ID & Operation Type Unique identifier and type of operation performed (sync, profile, or scan).
2. Timestamp Timestamp when the operation was started.
3. Progress Bar The progress of the operation.
4. Triggered By The author who triggered the operation.
5. Schedule Whether the operation was scheduled or not.
6. Checks Synchronized Indicates the count of Checks Synchronized in the operation.
7. AI Effort The selected AI Effort level (Off, Low, Medium, High, Extra High, or Max) for AI Managed check authoring during the operation.
8. AI Managed Checks Indicates whether AI Managed checks from this profile run were activated automatically (Activated) or created for review (Draft).
9. Read Record Limit Defines the maximum number of records to be scanned per table after initial filtering.
10. Results Provides immediate insights into the profile operation conducted.
11. Abort The "Abort" button enables you to stop the ongoing profile operation.
12. Summary The "Summary" section shows the profile operation's current progress. It includes key metrics such as:
  • Tables Requested: The total number of tables that were requested for profiling. Click on the adjacent magnifying glass icon to view the tables requested.
  • Tables Profiled: The number of tables that have been profiled so far. Click on the adjacent magnifying glass icon to view the tables profiled.
  • Records Profiled: This represents the total number of records that were included in the profiling process.
  • Field Profiles Updates: This number shows how many field profiles were updated as a result of the profiling operation.
  • AI Checks Synced: This indicates the number of AI Managed checks that were synchronized based on the profile operation.
  • Added: Shows the count of newly added AI Managed checks.
  • Updated: Indicates the count of checks that were updated in the operation.

Profile operation with running status showing progress and details

Aborted

This status indicates that the profile operation was manually stopped before it could be completed. A profile operation having an aborted status reflects the following details and actions:

No. Parameter Interpretation
1. Operation ID & Operation Type Unique identifier and type of operation performed (sync, profile, or scan).
2. Timestamp Timestamp when the operation was started.
3. Progress Bar The progress of the operation.
4. Aborted By The user who aborted the operation. On Aborted runs this tile replaces the usual Triggered By tile. If the platform stopped the operation automatically (for example, a shutdown or an internal cleanup), the value is System. Hover the row to see both the aborter and the original user who launched the profile.
5. Schedule Whether the operation was scheduled or not.
6. Checks Synchronized Indicates the count of Checks Synchronized in the operation.
7. AI Effort The selected AI Effort level (Off, Low, Medium, High, Extra High, or Max) for AI Managed check authoring during the operation.
8. AI Managed Checks Indicates whether AI Managed checks from this profile run were activated automatically (Activated) or created for review (Draft).
9. Read Record Limit Defines the maximum number of records to be scanned per table after initial filtering.
10. Results Provides immediate insights into the profile operation conducted.
11. Resume Provides an option to continue the profile operation from where it left off.
12. Rerun Allows you to start a new profile operation using the same settings as the aborted scan.
13. Delete Removes the record of the aborted profile operation from the system, permanently deleting results.
14. Summary The "Summary" section shows the recorded progress before the profile operation was aborted. It includes key metrics such as:
  • Tables Requested: The total number of tables that were requested for profiling. Click on the adjacent magnifying glass icon to view the tables requested.
  • Tables Profiled: The number of tables that were profiled before the operation was aborted. Click on the adjacent magnifying glass icon to view the tables profiled.
  • Records Profiled: This represents the total number of records that were included before the profiling process was aborted.
  • Field Profiles Updates: This number shows how many field profiles were updated as a result of the profiling operation.
  • AI Checks Synced: This indicates the number of AI Managed checks that were synchronized based on the profile operation.
  • Added: Shows the count of newly added AI Managed checks.
  • Updated: Indicates the count of checks that were updated in the operation.

Profile operation with aborted status showing resume and rerun options

Failure

This status indicates that the profile operation failed due to unrecoverable errors such as connection timeouts, refused connections, or permission issues. A profile operation having a failure status reflects the following details and actions:

No. Parameter Interpretation
1. Operation ID & Operation Type Unique identifier and type of operation performed (sync, profile, or scan).
2. Timestamp Timestamp when the operation was started.
3. Progress Bar The progress of the operation at the time of failure.
4. Triggered By The author who triggered the operation.
5. Schedule Whether the operation was scheduled or not.
6. Checks Synchronized Indicates the count of Checks Synchronized in the operation.
7. AI Effort The selected AI Effort level (Off, Low, Medium, High, Extra High, or Max) for AI Managed check authoring during the operation.
8. AI Managed Checks Indicates whether AI Managed checks from this profile run were activated automatically (Activated) or created for review (Draft).
9. Read Record Limit Defines the maximum number of records to be scanned per table after initial filtering.
10. Results Provides immediate insights into the profile operation conducted.
11. Resume Provides an option to continue the profile operation from where it left off.
12. Rerun Allows you to start a new profile operation using the same settings as the failed operation.
13. Delete Removes the record of the failed profile operation from the system, permanently deleting all results.
14. Summary The "Summary" section provides an overview of the profile operation's progress before failure. It includes key metrics such as:
  • Tables Requested: The total number of tables that were requested for profiling. Click on the adjacent magnifying glass icon to view the tables requested.
  • Tables Profiled: The number of tables that were profiled before the operation failed. Click on the adjacent magnifying glass icon to view the tables profiled.
  • Records Profiled: This represents the total number of records that were included before the profiling process failed.
  • Field Profiles Updates: This number shows how many field profiles were updated as a result of the profiling operation.
  • AI Checks Synced: This indicates the number of AI Managed checks that were synchronized based on the profile operation.
  • Added: Shows the count of newly added AI Managed checks.
  • Updated: Indicates the count of checks that were updated in the operation.
15. Logs Logs include error messages, connection failures, permission issues, and other pertinent information that caused the profile operation to fail.

Profile operation with failure status showing error logs and recovery options

Success with Warning

This status signals that the profile operation completed but encountered some issues, and displays the logs that facilitate improved tracking of the blockers and issue resolution. A profile operation having a success with warning status reflects the following details and actions:

No. Parameter Interpretation
1. Operation ID & Operation Type Unique identifier and type of operation performed (sync, profile, or scan).
2. Timestamp Timestamp when the operation was started.
3. Progress Bar The progress of the operation.
4. Triggered By The author who triggered the operation.
5. Schedule Whether the operation was scheduled or not.
6. Checks Synchronized Indicates the count of Checks Synchronized in the operation.
7. AI Effort The selected AI Effort level (Off, Low, Medium, High, Extra High, or Max) for AI Managed check authoring during the operation.
8. AI Managed Checks Indicates whether AI Managed checks from this profile run were activated automatically (Activated) or created for review (Draft).
9. Read Record Limit Defines the maximum number of records to be scanned per table after initial filtering.
10. Results Provides immediate insights into the profile operation conducted.
11. Rerun Allows you to start a new profile operation using the same settings as the warning scan.
12. Delete Removes the record of the profile operation, permanently deleting all results.
13. Summary The "Summary" section shows the recorded result of the completed profile operation. It includes key metrics such as:
  • Tables Requested: The total number of tables that were requested for profiling. Click on the adjacent magnifying glass icon to view the tables requested.
  • Tables Profiled: The number of tables that were profiled before the operation completed. Click on the adjacent magnifying glass icon to view the tables profiled.
  • Records Profiled: This represents the total number of records that were included before the profiling process was completed.
  • Field Profiles Updates: This number shows how many field profiles were updated as a result of the profiling operation.
  • AI Checks Synced: This indicates the number of AI Managed checks that were synchronized based on the profile operation.
14. Logs Logs include error messages, warnings, and other pertinent information that occurred during the execution of the Profile Operation.

Profile operation completed with success-warning status and logs

Success

This status confirms that the profile operation was completed successfully without any issues. A profile operation having a success status reflects the following details and actions:

No. Parameter Interpretation
1. Operation ID & Operation Type Unique identifier and type of operation performed (sync, profile, or scan).
2. Timestamp Timestamp when the operation was started.
3. Progress Bar The progress of the operation.
4. Triggered By The author who triggered the operation.
5. Schedule Whether the operation was scheduled or not.
6. Checks Synchronized Indicates the count of Checks Synchronized in the operation.
7. AI Effort The selected AI Effort level (Off, Low, Medium, High, Extra High, or Max) for AI Managed check authoring during the operation.
8. AI Managed Checks Indicates whether AI Managed checks from this profile run were activated automatically (Activated) or created for review (Draft).
9. Read Record Limit Defines the maximum number of records to be scanned per table after initial filtering.
10. Results Provides immediate insights into the profile operation conducted.
11. Rerun Allows you to start a new profile operation using the same settings as the warning scan, useful for restarting after errors.
12. Delete Removes the record of the profile operation from the system, permanently deleting all results; this action cannot be undone.
13. Summary The "Summary" section shows the recorded progress before the profile operation was aborted. It includes key metrics such as:
  • Tables Requested: The total number of tables that were requested for profiling. Click on the adjacent magnifying glass icon to view the tables requested.
  • Tables Profiled: The number of tables that were profiled before the operation was aborted. Click on the adjacent magnifying glass icon to view the tables profiled.
  • Records Profiled: This represents the total number of records that were included before the profiling process was aborted.
  • Field Profiles Updates: This number shows how many field profiles were updated as a result of the profiling operation.
  • AI Checks Synced: This indicates the number of AI Managed checks that were synchronized based on the profile operation.
  • Added: Shows the count of newly added AI Managed checks.
  • Updated: Indicates the count of checks that were updated in the operation.

Profile operation completed with success status

Full View of Metrics in Operation Summary

Users can now hover over abbreviated metrics to see the full value for better clarity. For demonstration purposes, we are hovering over the Records Profiled field to display the full value.

Hovering over abbreviated metrics to see full value

Post Operation Details

Step 1: Click on any of the successful Profile Operations from the list and hit the Results button. This opens the Results tab of the operation page.

Results button on a successful profile operation

Step 2: The Results tab lists the containers covered by the operation. You can search containers by name, sort the list, and use the Filter results menu to narrow it down by container type or tag. Turn on the Not analyzed filter to see only the containers that were not profiled.

The Results tab also provides two analysis options for you:

  • Details for a Specific Container (Container's Profile)
  • Details for a Specific Field of a Container (Field Profile)

Expand a profiled container from the Results tab by clicking on the arrow icon.

For detailed information about container quality metrics, observability charts, and profiling history, see Container Attributes. For field-level profile statistics such as distinct values, mean, median, and distribution metrics, see Field Profiles.

API Payload Examples

This section provides payload examples for initiating and checking the running status of a profile operation. Replace the placeholder values with data specific to your setup.

Running a Profile Operation

To run a profile operation, use the API payload example below and replace the placeholder values with your specific values:

Endpoint (Post): /api/operations/run (post)

The profile request accepts the following AI-related fields:

  • ai_effort (string): Controls how much work AI puts into authoring checks. Accepted values: "off", "low", "medium", "high", "xhigh", "max".
  • infer_as_draft (boolean): When true, AI Managed checks are created in Draft state for review. When false (or omitted), AI Managed checks are activated automatically.

Legacy inference_threshold field

The legacy integer field inference_threshold (range 05) is still accepted for backward compatibility and is automatically mapped to the equivalent ai_effort value (0"off", 1"low", 2"medium", 3"high", 4"xhigh", 5"max"). Values outside 05 are rejected. New integrations should use ai_effort directly. If both fields are provided, ai_effort takes precedence.

Option I: Running a profile operation of all containers

  • container_names: []: This setting indicates that profiling will encompass all containers.

  • max_records_analyzed_per_partition: null: This setting implies that all records within all containers will be profiled.

  • ai_effort: "max": AI will generate checks across every supported family (equivalent to the legacy inference_threshold: 5).

{
    "type": "profile",
    "datastore_id": "datastore-id",
    "container_names": [],
    "max_records_analyzed_per_partition": null,
    "ai_effort": "max",
    "infer_as_draft": false
}

Option II: Running a profile operation of specific containers

  • container_names: ["table_name_1", "table_name_2"]: Profiling will only cover the tables named table_name_1 and table_name_2.

  • max_records_analyzed_per_partition: 1000000: Up to 1 million rows per container will be profiled.

  • ai_effort: "off": AI will not generate any checks for this run (equivalent to the legacy inference_threshold: 0).

{
    "type": "profile",
    "datastore_id": "datastore-id",
    "container_names": [
        "table_name_1",
        "table_name_2"
    ],
    "max_records_analyzed_per_partition": 1000000,
    "ai_effort": "off"
}

Scheduling a Profile Operation

Below is a sample payload for scheduling a profile operation. Please substitute the placeholder values with the appropriate data relevant to your setup.

Endpoint (Post): /api/operations/schedule (post)

INFO: This payload is to run a scheduled profile operation every day at 00:00 in the America/New_York timezone.

Partial schedule updates preserve ai_effort

On partial updates to an existing profile schedule (PATCH), ai_effort is preserved if you do not include it in the payload. The previously stored value is kept. Send an explicit ai_effort value when you want to change the AI Effort level for the schedule.

Scheduling profile operation of all containers

  • timezone: "America/New_York": The schedule follows this timezone and adjusts automatically for daylight saving time. When omitted, the schedule runs in UTC.

  • trigger_type: "operation": Identifies this as an operation schedule. Include this field in the payload, since the endpoint uses it to determine the request type.

{
    "type": "profile",
    "name": "My scheduled Profile operation",
    "datastore_id": "datastore-id",
    "trigger_type": "operation",
    "container_names": [],
    "max_records_analyzed_per_partition": null,
    "ai_effort": "max",
    "infer_as_draft": false,
    "crontab": "0 0 * * *",
    "timezone": "America/New_York"
}

Retrieving Profile Operation Status

To retrieve the profile operation status, use the API payload example below and replace the placeholder values with your specific values:

Endpoint (Get): /api/operations/{id} (get)

{
    "items": [
        {
            "id": 12345,
            "created": "YYYY-MM-DDTHH:MM:SS.ssssssZ",
            "type": "profile",
            "start_time": "YYYY-MM-DDTHH:MM:SS.ssssssZ",
            "end_time": "YYYY-MM-DDTHH:MM:SS.ssssssZ",
            "result": "success",
            "message": null,
            "triggered_by": "user@example.com",
            "datastore": {
                "id": 101,
                "name": "Sample-Store",
                "store_type": "jdbc",
                "type": "db_type",
                "enrichment_only": false,
                "enrichment_prefix": "data_prefix",
                "favorite": false
            },
            "schedule": null,
            "ai_effort": "max",
            "max_records_analyzed_per_partition": -1,
            "max_count_testing_sample": 100000,
            "histogram_max_distinct_values": 100,
            "greater_than_time": null,
            "greater_than_batch": null,
            "percent_testing_threshold": 0.4,
            "high_correlation_threshold": 0.5,
            "status": {
                "total_containers": 2,
                "containers_analyzed": 2,
                "containers_succeeded": 2,
                "partitions_analyzed": 2,
                "records_processed": 1126,
                "fields_profiled": 9,
                "checks_synchronized": 26,
                "checks_added": 20,
                "checks_updated": 6
            },
            "containers": [
                {
                    "id": 123,
                    "name": "Container1",
                    "container_type": "table",
                    "table_type": "table"
                },
                {
                    "id": 456,
                    "name": "Container2",
                    "container_type": "table",
                    "table_type": "table"
                }
            ],
            "container_profiles": [
                {
                    "id": 789,
                    "created": "YYYY-MM-DDTHH:MM:SS.ssssssZ",
                    "parent_profile_id": null,
                    "container": {
                        "id": 456,
                        "name": "Container2",
                        "container_type": "table",
                        "table_type": "table"
                    },
                    "records_count": 550,
                    "records_processed": 550,
                    "checks_synchronized": 11,
                    "checks_added": 8,
                    "checks_updated": 3,
                    "field_profiles_count": 4,
                    "result": "success",
                    "message": null
                },
                {
                    "id": 790,
                    "created": "YYYY-MM-DDTHH:MM:SS.ssssssZ",
                    "parent_profile_id": null,
                    "container": {
                        "id": 123,
                        "name": "Container1",
                        "container_type": "table",
                        "table_type": "table"
                    },
                    "records_count": 576,
                    "records_processed": 576,
                    "checks_synchronized": 15,
                    "checks_added": 12,
                    "checks_updated": 3,
                    "field_profiles_count": 5,
                    "result": "success",
                    "message": null
                }
            ],
            "tags": []
        }
    ],
    "total": 1,
    "page": 1,
    "size": 50,
    "pages": 1
}

Troubleshooting

Unloadable Container Error

A profile operation may surface the following error for specific containers:

Container '<CONTAINER_NAME>' is marked as Unloadable. No attempt was made to load the container due to multiple consecutive failures in prior operations.

This happens after a container has failed in 3 consecutive scan or profile operations. Qualytics then skips it in subsequent profiles, scans, and check validations until the status is cleared.

  • For tables, views, and file patterns, run a Sync Operation on the datastore to reset the status.
  • For computed assets (Computed Tables, Computed Files, Computed Joins), force an edit on the asset (click Edit), then click Validate and Save to re-evaluate the definition.

See Unloadable Container Error for the full resolution steps and common root causes.