Configure and deploy a Profiler Agent to extract table and column metrics and run data quality tests.
Tip: For Datalake profiling, NaN (Not a Number) values are dropped from the DataFrame using dropna() to allow metric computation. Null values are retained so that null-count metrics remain accurate.
Complete metadata ingestion before configuring and deploying a Profiler Workflow. The workflow populates the Table Profile tab with table and column metrics and runs any data quality tests configured on the table.To deploy a Profiler Agent from the Collate UI, follow these steps:
Filter patterns control which databases, schemas, and tables the profiler targets. Each pattern field accepts a regex expression with separate include and exclude lists.
Database filter pattern (Optional): Regex to include or exclude databases by name.
Schema filter pattern (Optional): Regex to include or exclude schemas by name.
Table filter pattern (Optional): Regex to include or exclude tables by name.
Classification filter pattern (Optional): Regex to target tables by classification, tag, tier, or glossary term. The profiler computes metrics only for tables whose classification matches the pattern.
Use FQN For Filtering: When enabled, regex patterns apply to the fully qualified name (for example, service_name.db_name.schema_name.table_name) instead of the raw asset name. Enable this when different schemas share the same table name across multiple databases.
Control sampling strategy, thread usage, metric selection, and system statistics behavior.
Sample Config Type: Controls how the profiler selects rows to scan. Select Dynamic (default) or Static.When Dynamic is selected:
Smart Sampling: When enabled (default), automatically scales the sample percentage based on table size. The profiler samples 100% of tables with up to 100,000 rows, 50% up to 1 million, 10% up to 10 million, 5% up to 100 million, 1% up to 1 billion, and 0.1% above 1 billion rows.
Dynamic sampling reads the table’s row count once per run to choose the sample size. Most databases return it from system catalogs or table statistics instead of scanning the table, so the value can be an estimate. For example, Postgres uses pg_class.reltuples. When no statistic is available, the profiler runs a COUNT(*). It always runs a COUNT(*) for tables with a partition filter.When Static is selected:
Profile Sample: A fixed sample size applied to every profiler run, either as a percentage of rows or an absolute row count. The value must be at least 1.
Profile Sample Type: Select Percentage to sample by a fraction of the table, or Row Count to sample by an absolute number of rows.
Sampling Method Type: The SQL sampling strategy used when scanning a percentage sample. It applies to Snowflake and Timescale only. Other databases, including Postgres, ignore it. Select BERNOULLI to sample each row independently at the given probability, which is more statistically uniform but slower. Select SYSTEM to sample entire disk pages at the given probability, which is faster but less statistically uniform.
With Static sampling, how the sample is read depends on the database:
BigQuery, Snowflake, Timescale, SQL Server, Azure SQL, and Microsoft Fabric use TABLESAMPLE. Synapse uses it when the warehouse supports it. BigQuery uses it only for percentage samples on tables, and a row count sample still uses a LIMIT. SQL Server and Azure SQL don’t use it for views.
Postgres and other databases scan the table for a percentage sample. They assign each row a random number and keep the rows within the percentage. A row count sample uses a LIMIT.
Static sampling doesn’t look up the row count to choose the sample size. The exception is a row count sample with Randomized Sample enabled, which runs a COUNT(*) first.
Important: Profile Sample is not supported for Druid. Druid does not support RANDOM sampling functions. Use the partitioning or sample query option to limit data scanned.
Thread Count (Optional): The number of threads used for parallel metric computation. Set to 1 for Snowflake due to a known issue with snowflake-connector-python. Defaults to the system value.
Timeout in Seconds (Optional): How long a profiling job waits before skipping to the next table. The profiler waits for the current query to finish before timing out. Set a query or connection timeout on your database engine if jobs risk hanging. Defaults to 12 hours (43,200 seconds).
Metrics: The set of metrics the profiler computes. All metrics are selected by default. Deselect specific metrics to reduce profiling time or cost.
Include Views: When enabled, the profiler computes metrics for view entity types. This may reduce profiler performance.
Compute Table Metrics: When enabled (default), the profiler computes table-level metrics such as row count and column count.
Compute Column Metrics: When enabled (default), the profiler computes column-level metrics such as null count, distinct count, and mean.
Use System Table Statistics: When enabled, the profiler reads table metrics from system catalog tables instead of scanning data. Faster than full scans, but requires up-to-date statistics on the database — for example, run ANALYZE on PostgreSQL before profiling. Metrics unavailable in system tables fall back to the default scan method.
Randomized Sample: When enabled, the profiler randomizes the row order in the sample. Disable for deterministic sampling.
To configure the table-level settings, follow these steps:
In the table’s details page, navigate to the Data Observability tab and click the Settings icon.
In the Settings panel, configure the following details:
Profile Sample Type: The method used to determine how much data the profiler scans for this table.
Percentage: Use the slider to set a value between 1% and 100%.
Row Count: Enter a fixed number of rows to scan, for example 1,000 or 2,000. The value must be at least 1.
The Settings panel doesn’t accept a profile sample of 0.
Important: Profile Sample is not supported for Druid. Use the partitioning or custom query option to limit data scanned.
Sample Data Count: The number of rows to collect as sample data for this table. Defaults to 50.
Enable Column Profile: Control which columns the profiler includes for this table.
Exclude: Select columns to skip during profiling.
Include: Select specific columns to profile. When columns are selected here, the profiler runs only on those columns. All columns are included by default.
Enable Partition: When enabled, the profiler fetches data based on a partition configuration. If Profile Sample Type is also set, it applies to the partitioned data, not the full table.
Column Name: The column used as the partition field.
Interval Type:
TIME-UNIT: A business timestamp or date column, for example order date or sign-up datetime.
INGESTION-TIME: A process timestamp indicating when data was ingested into the table.
COLUMN-VALUE: A categorical value representing a chunk of data, for example Product Type A, B, or C.
INTEGER-RANGE: A range of integers used as the partition, for example Customer ID between 1 and 10.
After selecting an Interval Type, configure the following:For TIME-UNIT or INGESTION-TIME:
Interval: The interval value, for example 1 or 2.
Interval Unit: HOUR, DAY, MONTH, or YEAR.
Note: For BigQuery tables partitioned on a timestamp or datetime column, month and year intervals are not supported. Set Interval Unit to DAY or HOUR.For COLUMN-VALUE:
Value: A list of values for the partitioning logic.
To configure platform-level settings, follow these steps:
In the left navigation bar, click the Profile icon and navigate to Settings > Preferences > Profiler Configuration.
On the Profiler Configuration page, configure the following sections:Metric ConfigurationEach row controls which metrics the profiler computes for a specific data type. Click + Add New Field to add a configuration for an additional data type.
Data Type: The column data type to configure, for example DATE, BIGINT, or VARCHAR.
Metric Type: The specific metrics to compute for the data type. When no metrics are selected, the profiler computes all available metrics. When metrics are selected, only those metrics are computed.
Disable: Toggle on to skip all metric computation for that data type. The profiler ignores any selected metrics when this is enabled.
Sample Data Ingestion ConfigurationControls whether Collate stores or reads sample data during profiling. These settings override source-level configuration.
Enable Storing of Sample Data: When enabled (default), Collate stores sample data collected during profiling runs.
Enable Reading of Sample Data: When enabled (default), Collate reads sample data during profiling. The data is temporarily loaded into Collate’s infrastructure for processing but not stored. When using the Hybrid Runner, this processing happens within your own environment and sample data does not leave your infrastructure. If reading is disabled but storing is enabled, reading is automatically enabled.
The profiler workflow can also be triggered using a YAML configuration file via the Airflow SDK or the CLI. The serviceConnection config is connector-specific. See the connectors section for details. The sourceConfig for the profiler is similar across all connectors.To run the profiler from a YAML file, follow these steps:
Create a YAML configuration file with the following structure:The sourceConfig block supports these parameters:
computeTableMetrics: Turn off to skip table-level metric computation.
computeColumnMetrics: Turn off to skip column-level metric computation. Turn both this and computeTableMetrics off when you only want to ingest sample data.
profileSampleConfig: How much data the profiler and tests run on. sampleConfigType is either DYNAMIC (default, resolves the sample size at runtime from the table’s row count) or STATIC (a fixed size you set yourself); config holds the settings for the type you chose.
threadCount: Number of threads used for metric computation.
timeoutSeconds: How long a profiling job waits before skipping to the next table.
databaseFilterPattern: Regex to include or exclude databases by name.
schemaFilterPattern: Regex to include or exclude schemas by name.
tableFilterPattern: Regex to include or exclude tables by name.
The processor block uses type: orm-profiler. Use tableConfig to set profile sample, column filters, and partition config at the table level.The sink block must use type: metadata-rest to send results to Collate.The workflowConfig block requires an openMetadataServerConfig with the host and auth provider for your Collate installation.
The profiler runs queries against your database, which can incur costs on engines like Google BigQuery and Snowflake. Execution time varies based on engine performance, table size, and column count. Keep these practices in mind when configuring profiler workflows.
Profile only what you need: Profiling every table in your data platform is rarely necessary. Focus on tables that are actively used by analysts, data scientists, or downstream pipelines. Use database, schema, and table filter patterns to narrow down which tables the profiler targets.
Use sampling and partitioning: Set a sample percentage or row count to limit how much data the profiler scans per table. For partitioned tables, configure a partition filter so the profiler only scans the relevant partition. Both approaches reduce query cost and execution time.
Exclude unnecessary columns and metrics: By default, the profiler computes all metrics for all columns. Use the column profile settings to exclude columns such as id fields, or limit the metric set to only what’s needed. This reduces computation time and cost.
Distribute load across multiple workflows: For large numbers of tables, set up multiple Profiler Agents with different filter patterns to distribute the load. Monitor instance CPU and memory when running several workflows simultaneously to avoid resource contention.
Was this page helpful?
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Collate Documentation","colors":{"primary":"#1570EF","light":"#1570EF","dark":"#1570EF"},"logo":"https://mintcdn.com/collatedocs/yvgGxaeRR5RwtQo6/public/images/icons/collate-logo.svg?fit=max\u0026auto=format\u0026n=yvgGxaeRR5RwtQo6\u0026q=85\u0026s=59d7983952a91cd53138369f2e21a5ac","favicon":"https://mintcdn.com/collatedocs/yvgGxaeRR5RwtQo6/public/images/icons/collate-monogram.svg?fit=max\u0026auto=format\u0026n=yvgGxaeRR5RwtQo6\u0026q=85\u0026s=a8507d257fb5cbd5ac2366790c55d8f7","api":{"mdx":{"auth":{"method":"bearer"},"server":"https://sandbox.open-metadata.org/api"}},"appearance":{"default":"light","strict":true},"navbar":{"links":[{"icon":"Headphones","href":"mailto:support@getcollate.io","label":"Support"},{"icon":"Book","href":"https://www.getcollate.io/blog","label":"Blogs"},{"href":"https://cloud.getcollate.io/","label":"Free Trial"}]},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/collateinc","x":"https://twitter.com/collatedata","youtube":"https://www.youtube.com/@CollateData"},"links":[{"items":[{"label":"Terms of Service","href":"https://www.getcollate.io/terms"},{"label":"Privacy Policy","href":"https://www.getcollate.io/privacypolicy"},{"label":"Trust Center","href":"https://trustcenter.getcollate.io/"},{"label":"Contact Us","href":"https://www.getcollate.io/contact-sales"}]}]},"seo":{"metatags":{"robots":"index,follow"}},"styling":{"eyebrows":"breadcrumbs","latex":true},"integrations":{"ga4":{"measurementId":"GTM-554C968W"}},"interaction":{"drilldown":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"collatedocs","hasAudioNarration":false,"actualSubdomain":"collatedocs","customDomains":["docs.getcollate.io"],"gitSource":{"type":"github","owner":"open-metadata","repo":"docs-collate","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aecc6720499536d20378e69","collectionId":"9037ccc1-4451-4f09-b2ec-33571d636a1d","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aecc6720499536d20378e69"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aedfc9e2e4164cdd9d1c1bb","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"Connectors","count":1744},{"language":"default","tag":"SDKs \u0026 APIs","count":626},{"language":"default","tag":"Database","count":414},{"language":"default","tag":"Data Governance","count":329},{"language":"default","tag":"Data Assets","count":316},{"language":"default","tag":"SDKs and APIs","count":313},{"language":"default","tag":"Collate APIs","count":285},{"language":"default","tag":"Data Quality \u0026 Observability","count":237},{"language":"default","tag":"Pipeline","count":164},{"language":"default","tag":"Guide for Data Users","count":160}]},"assistantConfig":{"enableAskAiButton":true,"enableStarterQuestions":true,"enableAskAiSearchBar":false,"deflection":{"enabled":true,"email":"support@getcollate.io","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"starterQuestions":[{"_id":"694587850a00f222af972838","deploymentId":"694583b20a00f222af96d417","questionText":"How to set up SSO?","status":"active","generatedBy":"manual","createdAt":"2025-12-19T17:12:37.423Z","updatedAt":"2025-12-19T17:12:37.423Z","__v":0},{"_id":"6945876e0a00f222af97266a","deploymentId":"694583b20a00f222af96d417","questionText":"How to use AskCollate?","status":"active","generatedBy":"manual","createdAt":"2025-12-19T17:12:14.884Z","updatedAt":"2025-12-19T17:12:14.884Z","__v":0},{"_id":"694587660a00f222af9725a6","deploymentId":"694583b20a00f222af96d417","questionText":"How to set up Snowflake?","status":"active","generatedBy":"manual","createdAt":"2025-12-19T17:12:06.575Z","updatedAt":"2025-12-19T17:12:06.575Z","__v":0}],"googleFontsInlined":false},"customCss":[{"filePath":"public/globals.css","content":"/* latin-ext */\n@font-face {\n font-family: 'DM Sans';\n font-style: italic;\n font-weight: 100 1000;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/dmsans/v17/rP2Fp2ywxg089UriCZa4ET-DNl0.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'DM Sans';\n font-style: italic;\n font-weight: 100 1000;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/dmsans/v17/rP2Fp2ywxg089UriCZa4Hz-D.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* latin-ext */\n@font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 100 1000;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/dmsans/v17/rP2Hp2ywxg089UriCZ2IHSeH.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 100 1000;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/dmsans/v17/rP2Hp2ywxg089UriCZOIHQ.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n@tailwind base;@tailwind components;@tailwind utilities;:root{--top-nav-height: 70px;--main-nav-height: 42px;--side-nav-width: 288px;--side-nav-collapsed-width: 42px;--select-dropdown-default-height: 28px;--select-dropdown-default-width: 165px;--side-nav-width: min(20%, 300px);--api-side-nav-width: max(14%, 220px);--content-div-width: min(17%, 250px);--default-border-color: #dce3ec;--primary-color: #5469d4;--primary-shadow-color: #5469d433;--primary-background-color: rgba(84, 105, 212, 0.05);--select-background-color: #f4f7ff;--icon-background-color: #f1f3fe;--select-border-color: #e9eefc;--homepage-container-px: 130px;--default-text-color: rgb(60, 66, 87);--gray-text-color: rgba(60, 66, 87, 0.7);--white-color: #fff;--top-nav-color: #f7fafc;--code-background-color: #212d63;--code-gray-background-color: rgb(79, 86, 107);--code-light-background-color: #f7fafc;--code-toolbar-color: #212d63;--code-gray-toolbar-color: #3c4257;--code-light-toolbar-color: #ffffff;--code-light-border-color: #e3e8ee;--code-filename-color: #a4cdfe;--code-gray-filename-color: #dadce1;--code-light-filename-color: #f7fafc;--code-block-text-color: #f5fbff;--purple-bg-color: #7147e81a;--green-bg-color: #0084761a;--pink-bg-color: #b02aac1a;--purple-icon-color: #7147e8;--green-icon-color: #008376;--pink-icon-color: #b02aac;--beta-label-color: #0950C5;--beta-label-bg-color: #E4EEFF;--prod-label-color: #81C562;--prod-label-bg-color: #EEFBE7;--stable-label-color: #1890ff;--stable-label-bg-color: #e6f7ff;--connector-icon-bg-color: #F8F8F8;--green-tag-color: #43A047;--green-tag-bg-color: #43A0471A;--orange-tag-color: #FF7C50;--orange-tag-bg-color: #FF7C501A}body{font-family:\"DM Sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica,\n Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:var(--default-text-color);margin:0;font-size:16px;font-weight:400;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{font-weight:600;font-family:\"DM Sans\"}b,strong{font-weight:600}p{line-height:1.5em;margin:8px 0px 0px 0px;color:#414651}h1{font-size:36px;line-height:44px;color:#222244!important;margin-bottom:10px!important}h2{font-size:30px;line-height:38px}h3{font-size:24px;line-height:32px}h4{font-size:20px;line-height:30px}h5{font-size:18px;line-height:28px}h6{font-size:16px;line-height:24px}a{color:var(--primary-color);font-weight:500}li::marker{color:var(--primary-color)}ol{list-style:decimal;margin-top:16px;margin-left:16px}ol li::marker{color:var(--default-text-color)}li>ul{margin-top:0px;margin-left:16px}pre{border-radius:6px;background-color:var(--code-background-color)}pre,code{-ms-overflow-style:none;scrollbar-width:none}*::-webkit-scrollbar{display:none}*{scrollbar-width:none}pre::-webkit-scrollbar,code::-webkit-scrollbar{display:none}a.link{color:#004CD3;font-weight:600;text-decoration:none;border:none}a.link:hover{text-decoration:underline}.connector-tab{display:block;width:100%;text-align:start;padding:8px;cursor:pointer;border-radius:4px}.connector-tab:hover{background-color:var(--primary-background-color)}.active-connector{border:0.5px solid var(--select-border-color);background-color:var(--primary-background-color);color:var(--primary-color);font-weight:600}.divider{color:var(--default-border-color)}.icons{height:2rem;width:2rem}.cloud-button{border-radius:1rem;border:1px solid rgb(194, 128, 255);background-color:rgb(194, 128, 255)}.search-box{height:2.25rem;width:550px;border:1px solid #f4f4f4;border-radius:0.5rem;background-color:#f4f4f4;padding:4px 20px;color:#9e9d9d;display:flex;align-items:center}.search{width:90%;height:90%;border:none;background-color:#f4f4f4;outline:none}.overview-container{width:100vw;display:flex;flex-direction:column;justify-content:center;padding:50px 10%;background:#f4f7ff}.overview-heading{font-weight:700;font-size:22px;line-height:42px;margin-bottom:12px}.container-heading{font-weight:700;font-size:22px;line-height:42px;margin-bottom:40px}.cards-container{display:grid;grid-template-columns:1fr 1fr 1fr;gap:32px}.blogs-container{display:grid;grid-template-columns:1fr 1fr 1fr;gap:32px}.homepage-containers{padding:0px 10%;margin:80px 0px 0px 0px}#myUL{list-style-type:none;margin:0;padding:0}.nested{display:none}.active{display:block;color:var(--primary-color)}.DownArrow{display:none}.RightArrow{display:block}.highlightedCode{background-color:#1a2652}.page-404{height:calc(100vh - var(--top-nav-height) - var(--main-nav-height))}.content{flex-grow:0;flex-shrink:1}.non-collapsed-content{width:calc(100vw - var(--side-nav-width))}.collapsed-content{width:calc(100vw - var(--side-nav-collapsed-width))}.card-icon-container{padding:8px;width:fit-content;border-radius:10px}.card-purple-icon{background-color:var(--purple-bg-color);border:1px solid #7147e8}.card-green-icon{background-color:var(--green-bg-color);border:1px solid #008376}.card-pink-icon{background-color:var(--pink-bg-color);border:1px solid #b02aac}.nav-bar-container{position:sticky;top:0px;z-index:100}.min-width-600{min-width:600px}@media (max-width: 1240px){.blogs-container{grid-template-columns:1fr 1fr}}@media (max-width: 900px){.cards-container{grid-template-columns:1fr 1fr}.blogs-container{grid-template-columns:1fr}.overview-container{padding:20px 60px;width:100%}.homepage-containers{padding:20px 60px;margin:32px 0px 0px 0px}}@media (max-width: 600px){.cards-container{grid-template-columns:1fr}.non-collapsed-content{display:none}.collapsed-content{width:calc(100% - 41px)}}#header h1,#header p{display:none!important}.mdx-content{margin-top:0px!important}.api-page-container{display:grid;grid-template-columns:var(--api-side-nav-width) calc(100vw - var(--api-side-nav-width))}.hash-link{overflow:hidden;width:0px;height:0px;display:block;visibility:hidden;text-decoration:none;pointer-events:none;margin-top:-300px!important;padding-top:300px}.cookie-modal{position:fixed;bottom:0;background-color:#F8FBFC;z-index:20;padding:1rem;box-shadow:var(--shadow-card);transform:translateY(100%);transition:transform 1.2s ease-in-out, visibility 1.2s ease-in-out;visibility:hidden;border:1px solid rgb(201, 196, 196);border-radius:10px}.cookie-modal p{color:#292929;font-weight:300}.cookie-modal-buttons{margin-top:2rem;display:flex;gap:0.75rem;justify-content:flex-end}.button{border-radius:1.5rem;padding:0.5rem 2rem;font-size:0.875rem;cursor:pointer;border:none}.button-accept{background-color:#7147E8;color:white}.button-reject{background-color:white;color:#7147E8;border:1px solid #7147E8}@media (min-width: 640px){.cookie-modal{margin:1.25rem;max-width:36rem}}@media (min-width: 1024px){.cookie-modal{max-width:48rem}}.cookie-modal.visible{transform:translateY(0);visibility:visible}.brand-docs-banner{font-weight:500;padding:0px 8px;border-radius:12px;margin-top:16px;width:fit-content}.breadcrumb-item:first-child{display:none}.breadcrumb-item:last-of-type a{color:#414651;pointer-events:none;cursor:text;text-decoration:none}#page-loader{position:fixed;top:0;left:0;width:0%;height:3px;background:linear-gradient(90deg, #3b82f6, #8b5cf6);z-index:9999;transition:width 0.3s ease}[data-component-part=\"version-select-trigger\"]{background:#EFF8FF!important;border:1.5px solid #B2DDFF!important;border-radius:100px!important;overflow:visible!important;padding:4px 14px!important;height:32px!important;font-weight:600!important;font-size:13px!important}[data-component-part=\"version-select-trigger\"]:hover{background:#E0F2FE!important;border-color:#7DD3FC!important}[data-component-part=\"version-select-trigger\"][data-state=\"open\"],[data-component-part=\"version-select-trigger\"][aria-expanded=\"true\"]{background:#DBEAFE!important;border-color:#93C5FD!important}[data-component-part=\"version-select-trigger\"] span{color:#026AA2!important;font-weight:600!important;max-width:none!important}[data-component-part=\"version-select-item\"]{border-radius:8px!important;font-size:13px!important;font-weight:500!important;padding:6px 12px!important;cursor:pointer!important}[data-component-part=\"version-select-item\"][data-state=\"checked\"],[data-component-part=\"version-select-item\"][aria-checked=\"true\"]{color:#1570EF!important;background:#EFF8FF!important;font-weight:600!important}#navbar .border-b{border:none}#navbar .nav-tabs{background-color:#FAFAFA;width:max-content;border:1px solid #EAECF5;border-radius:100px;margin:24px auto 4px;column-gap:16px;max-width:100%;overflow-x:auto;display:flex;flex-wrap:nowrap;justify-content:flex-start}#navbar .nav-tabs .nav-tabs-item{padding:12px 24px;font-size:16px;white-space:nowrap;flex-shrink:0;color:#414651;font-weight:500}@media (max-width: 1440px){#navbar .nav-tabs{column-gap:4px}#navbar .nav-tabs .nav-tabs-item{padding:10px 16px;font-size:15px}}#navbar .nav-tabs a[href^=\"/how-to-guides/\"]{display:none!important}#navbar .nav-tabs a[href^=\"/ai-2-0/how-to-guides/\"]{display:none!important}#navbar .nav-tabs .nav-tabs-item:hover{color:#181D27;text-decoration:none}#navbar .nav-tabs .nav-tabs-item .absolute{display:none!important}#navbar .nav-tabs .nav-tabs-item[data-active=\"true\"]{color:#1570EF;background-color:#EFF8FF;border:1.5px solid #B2DDFF;border-radius:100px;font-weight:600}#navbar .nav-tabs:has(a[href^=\"/how-to-guides/\"][data-active=\"true\"]) a.nav-tabs-item[href=\"/how-to-guides\"]{color:#1570EF;background-color:#EFF8FF;border:1.5px solid #B2DDFF;border-radius:100px;font-weight:600}body:has(.homepage-container) #navbar .nav-tabs .nav-tabs-item[data-active=\"true\"]:not([href=\"/\"]):not([href=\"/ai-2-0\"]){color:#414651;background-color:transparent;border:1.5px solid transparent;border-radius:0;font-weight:500;text-shadow:none}body:has(.homepage-container) #navbar .nav-tabs .nav-tabs-item[href=\"/\"],body:has(.homepage-container) #navbar .nav-tabs .nav-tabs-item[href=\"/ai-2-0\"]{color:#1570EF;background-color:#EFF8FF;border:1.5px solid #B2DDFF;border-radius:100px;font-weight:600;text-shadow:-0.2px 0 0 currentColor, 0.2px 0 0 currentColor}#navbar .h-10{height:auto!important}.navbar-link a{background-color:transparent;color:#535862;font-weight:600}.nav-logo{height:36px}.navbar-link a:hover{color:#181D27;background-color:transparent}.products-container h2{color:#222244;font-size:22px;font-weight:600}.card{border:none;box-shadow:0px 4px 12px -1px rgba(10, 13, 18, 0.08);transition:all 0.3s ease}.card>*{padding:20px;transition:all 0.3s ease}.card h2{color:#181D27;font-size:18px;line-height:20px}.card:hover{box-shadow:0px 3px 3px -1.5px #0A0D120A,\n 0px 8px 8px -4px #0A0D1208,\n 0px 20px 24px -4px #0A0D1214;transform:translateY(-2px)}.card:hover>*{padding:24px;margin:-4px}.connector-page .card [data-component-part=\"card-content-container\"]{position:relative}.card [data-component-part=\"card-icon\"]:has(>svg){background-color:#e6f1ff;padding:24px;border-radius:100%;display:inline-flex;align-items:center;justify-content:center}body:not(:has(.homepage-container)) .card [data-component-part=\"card-icon\"]{width:auto!important;height:auto!important;min-width:32px!important;min-height:32px!important;align-self:flex-start!important}body:not(:has(.homepage-container)) .card [data-component-part=\"card-icon\"] img{width:32px!important;height:32px!important;object-fit:contain;flex-shrink:0}.connector-page div[data-component-part=\"card-icon\"]{background-color:#F8F9FC;padding:16px;border-radius:100%;display:inline-flex;align-items:center;justify-content:center;width:auto!important;height:auto!important}.connector-page div[data-component-part=\"card-icon\"] svg,.connector-page div[data-component-part=\"card-icon\"] img{width:32px!important;height:32px!important;object-fit:contain;flex-shrink:0;position:relative;z-index:1}.prod-beta-chip{display:flex;gap:4px;font-size:10px;width:max-content;border-radius:100px;padding:0px 6px;font-weight:500;position:absolute;top:12px;right:12px}.prod-beta-chip.prod{color:#067647;background-color:#ECFDF3;border:1px solid #ABEFC6}.prod-beta-chip.beta{color:#175CD3;background-color:#EFF8FF;border:1px solid #B2DDFF}.prod-beta-chip img{margin:0px}.prod-beta-chip span{margin-top:-7px}#sidebar-content{border:none;top:132px!important;height:calc(100vh - 132px)!important}.sidebar-group-header{display:none}.my-2:has(ul.sidebar-group a[href^=\"/api-reference\"])>.sidebar-group-header,.my-2:has(ul.sidebar-group a[href*=\"/developer-guide/\"])>.sidebar-group-header{display:flex}.sidebar-group-header h5{color:#222244;font-size:14px;font-weight:600}#table-of-contents-content .toc-item a{color:#414651}#table-of-contents-content .toc-item a:hover{color:#414651;border-color:#D5D9EB}#table-of-contents-content .toc-item a.text-primary{color:#004CD3;border-color:#004CD3;font-weight:600}body:not(:has(.homepage-container)) .mdx-content h1,.products-container h1,.collate-ai-container h1{display:flex;flex-direction:column;align-items:flex-start;margin-top:0!important}body:not(:has(.homepage-container)) .mdx-content h1::before,.products-container h1::before,.collate-ai-container h1::before{content:\"Collate Documentation\";display:block;background-color:#F0F9FF;color:#0BA5EC;padding:4px 12px;border-radius:100px;font-size:14px;font-weight:600;line-height:1.5;margin-bottom:16px;width:fit-content;flex-shrink:0}h1.ConnectorName::before{position:absolute;top:-2px;left:0px}body:has(.homepage-container) #search-bar-entry,body:has(.homepage-container) #assistant-entry{display:none!important}.search-container{position:relative;margin-top:64px;display:flex;align-items:center;justify-content:center;width:100%;max-width:800px;margin-left:auto;margin-right:auto;padding:0px 6px}.homepage-search-input{width:100%;padding:18px 58px 18px 70px;border:2px solid #EAECF5;border-radius:100px;font-size:16px;color:#3C4257;cursor:pointer;transition:all 0.2s ease;box-sizing:border-box}.homepage-search-input::placeholder{color:#CECFD2;font-size:18px}.homepage-search-input:hover{background-color:#FFFFFF}.homepage-search-input:focus{outline:none;background-color:#FFFFFF;box-shadow:0 0 0 3px rgba(84, 105, 212, 0.1)}.ask-ai-icon-button{position:absolute;left:26px;top:12px;background:none;border:none;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:20;pointer-events:auto}.ask-ai-icon{color:#9CA3AF;pointer-events:auto;width:40px!important;height:40px!important}.search-shortcut{position:absolute;right:20px;top:50%;transform:translateY(-50%);color:#9CA3AF;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:600;pointer-events:none;white-space:nowrap}.navbar-link:last-of-type a{background-color:#1570EF;color:white;border-radius:100px;display:flex;justify-content:center}.navbar-link:last-of-type a:hover{background-color:#0257cd}body:has(.how-to-guides-container) #sidebar-content,body:has(.sdk-container) #sidebar-content,body:has(.connector-page) #sidebar-content,body:has(.getting-started-container) #sidebar-content,body:has(.collate-ai-container) #sidebar-content{display:none}body:has(.how-to-guides-container) #content-container,body:has(.sdk-container) #content-container,body:has(.connector-page) #content-container,body:has(.getting-started-container) #content-container,body:has(.collate-ai-container) #content-container{max-width:1300px!important}.collate-ai-container{margin-top:10px}article iframe,.prose iframe{max-width:600px!important;width:100%!important;margin:0 auto!important;display:block!important;height:auto!important;aspect-ratio:16 / 9!important;border:none!important}@media (max-width: 1024px){.navbar-link:first-of-type{margin-top:20px}article iframe,.prose iframe{max-width:100%!important;width:100%!important;height:auto!important;aspect-ratio:16 / 9!important}}@media (max-width: 768px){article iframe,.prose iframe{max-width:100%!important;width:100%!important;margin:0!important;height:auto!important;aspect-ratio:16 / 9!important}}.card:not(:has([data-component-part=\"card-icon\"])){border:1px solid #EAECF5!important;background-color:#F8F9FC!important;box-shadow:none!important}.card.card:not(:has([data-component-part=\"card-icon\"])) h2{color:#004CD3;font-weight:500;font-size:20px;margin-bottom:12px;line-height:30px}.card.card:not(:has([data-component-part=\"card-icon\"])):hover h2{text-decoration:underline}.how-to-guides-container ul{list-style:none;padding-left:0}.how-to-guides-container ul li{padding-left:28px;position:relative;margin-bottom:8px}.how-to-guides-container ul li::before,.sdk-container ul li::before,.python-container ul li::before{content:'';position:absolute;left:0;top:6px;width:16px;height:16px;background-color:transparent;background-image:url(\"/public/images/icons/check-circle.svg\");background-size:contain;background-repeat:no-repeat}.sdk-container .card img{min-width:40px!important;width:40px!important;height:40px!important}.code-block,.code-block [data-component-part=\"code-block-root\"]{border:none!important;background-color:#3E444F!important;border-radius:16px!important;backdrop-filter:blur(40px)}.code-block pre,.code-block code,.code-block span{color:#E5E7EB!important;background-color:transparent!important}.code-block pre{background-color:transparent!important}.python-container{background-color:#FAFAFA;border-radius:12px;padding:6px 20px}.callout [data-component-part=\"callout-content\"]{color:#414651!important}@layer utilities{.callout [data-component-part=\"callout-content\"] a{color:var(--primary-color)!important}}.chat-assistant-floating-input{max-width:370px!important;margin-left:auto!important;margin-right:auto!important}div:has(>#chat-assistant-sheet){border:none}div:has(>#chat-assistant-sheet) .cursor-col-resize{display:none!important}#chat-assistant-sheet{margin-top:0.4rem!important;min-height:90%!important;border:1px solid #EAECF5;border-top-left-radius:24px;border-top-right-radius:24px;box-shadow:0px 2px 2px -1px #0A0D120A,\n 0px 4px 6px -2px #0A0D1208,\n 0px 12px 16px -4px #0A0D1214;background:#0A0D12;color:rgba(255, 255, 255, 0.9)}.chat-assistant-sheet-header span{color:rgba(255, 255, 255, 0.9)!important}.chat-assistant-sheet-header span.font-medium{font-size:0}.chat-assistant-sheet-header span.font-medium::before{content:\"Ask AI\";font-size:0.875rem;font-weight:600}.chat-assistant-sheet-header svg{width:16px;height:16px;color:rgba(255, 255, 255, 0.8)}#chat-assistant-textarea{background-color:#373A41;border-radius:100px;color:rgba(255, 255, 255, 0.9);padding:14px 48px 14px 16px;max-height:52px!important;overflow-y:auto}#chat-assistant-textarea::placeholder{color:rgba(255, 255, 255, 0.6)}.chat-assistant-send-button{width:32px!important;height:32px!important;top:50%!important;bottom:auto!important;transform:translateY(-50%);background-color:#2970FF}#chat-assistant-textarea~span{top:50%!important;bottom:auto!important;transform:translateY(-50%)}.chat-assistant-send-button:hover{background-color:#004EEB}.chat-assistant-send-button svg{width:16px;height:16px}div:has(>div>#chat-assistant-textarea){border:none!important;background-color:#373A41}#chat-content{margin-top:12px}#chat-content .rounded-2xl.bg-gray-100{background:#22262F!important}#chat-content button{color:rgba(255, 255, 255, 0.6)}#chat-content button[aria-label*=\"Vote\"]:hover,#chat-content button[aria-label=\"Copy chat response\"]:hover{color:#22262F}#chat-content .whitespace-pre-line,#chat-content li{color:rgba(255, 255, 255, 0.7)}#chat-content .rounded-2xl.bg-gray-100 .text-gray-800,#chat-content .rounded-2xl.bg-gray-100 div{color:#FFFFFFE5!important}#assistant-entry{margin-left:auto;border:2px solid #1570EF;background-color:transparent}#assistant-entry svg,#assistant-entry span{background:none;-webkit-text-fill-color:#1570EF;font-weight:600;color:#1570EF}#assistant-entry:hover{background:linear-gradient(45deg, #175CD3 0%, #1570EF 100%)}#assistant-entry:hover svg,#assistant-entry:hover span{background:none;-webkit-background-clip:unset;-webkit-text-fill-color:white;background-clip:unset;color:white}div:has(>#search-bar-entry):has(>#assistant-entry){flex-direction:row-reverse!important}div[data-component-part=\"code-group-tab-bar\"] p{margin-top:0px}table{width:100%;border-collapse:collapse;margin:16px 0;border:1px solid #EAECF5;border-radius:12px}table thead{background-color:#F8F9FC}table th{padding:12px 24px!important;text-align:left;font-weight:600;color:#181D27;border-bottom:2px solid #EAECF5}table td{padding:12px 24px!important;color:#414651;border-bottom:1px solid #EAECF5}table tr:last-child td{border-bottom:none}table tr:hover{background-color:#F8F9FC}.space-x-2>:not([hidden])~:not([hidden]){margin:0px}.header-logo{max-width:max-content;border-radius:32px 80px 0 0;background:#224;padding:9px 44px 10px 45px;display:flex;gap:20px;align-items:center}.header-logo .collate-logo{width:84px;height:14px}.header-logo .x-icon{width:18px;height:18px}.header-logo .om-logo{width:64px;height:25px}.collate-summit{margin:0px auto 72px;max-width:1200px;padding:20px}.summit-content{background-image:url('/public/images/banner-bg.png');background-size:100% 100%;background-position:center;background-repeat:no-repeat;border-radius:0px 20px 20px 20px;padding:28px 44px;width:100%;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:24px;position:relative;z-index:24}.summit-content .summit-header{font-size:48px;font-weight:400;color:#224;line-height:52px}.summit-content p{color:#5816DC;margin-top:0px;margin-left:4px;font-size:28px;font-weight:600}.summit-content .explore-collate{background-color:#FBE200;color:black;font-size:18px;white-space:nowrap;padding:11px 20px;border-radius:6px;font-weight:600}.summit-content .explore-collate:hover{background-color:#dec908}.summit-content .explore-collate a{color:black;font-weight:600}@media (max-width: 768px){.summit-content{flex-direction:column;align-items:center;text-align:center;padding:48px 24px}}@media (max-width: 640px){.header-logo{padding:9px 36px 10px 24px}}"},{"filePath":"public/modal.css","content":".modal{position:fixed;left:0;top:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;opacity:0;transition:all 0.3s ease-in-out;pointer-events:none;z-index:999}.modal.enter-done{opacity:1;pointer-events:visible}.modal.exit{opacity:0}.modal-content{margin:0 10px;width:600px;height:300px;background-color:var(--white-color);transition:all 0.3s ease-in-out;transform:translateY(-200px)}.modal.enter-done .modal-content{transform:translateY(0)}.modal.exit .modal-content{transform:translateY(-200px)}"},{"filePath":"snippets/components/CodePreview.css","content":".split-layout{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin:2rem 0;align-items:start}@media (max-width: 768px){.split-layout{grid-template-columns:1fr;gap:1rem}}.code-content .code-block [data-component-part=\"code-block-root\"]{background-color:#0b1e3d!important}.content-panel{display:flex;flex-direction:column;gap:1.5rem;padding-right:1rem}.content-section{padding:0.5rem 1rem;border-left:2px solid transparent;border-radius:6px;cursor:pointer;position:relative;box-sizing:border-box;transition:background 0.25s ease,\n border-color 0.25s ease,\n box-shadow 0.25s ease}.content-section:hover{background:linear-gradient(\n 90deg,\n rgba(176, 176, 176, 0.08) 0%,\n rgba(176, 176, 176, 0.03) 100%\n );border-left-color:rgba(176, 176, 176, 0.5)}.content-section.active{background:linear-gradient(\n 90deg,\n rgba(176, 176, 176, 0.15) 0%,\n rgba(176, 176, 176, 0.05) 100%\n );border-left-color:#b0b0b0;box-shadow:0 2px 8px rgba(176, 176, 176, 0.1),\n inset 0 0 20px rgba(176, 176, 176, 0.05);color:rgb(63, 65, 69)}.content-section.active::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(\n 180deg,\n #c0c0c0 0%,\n #b0b0b0 50%,\n #a0a0a0 100%\n )}.content-section h4{margin:0 0 0.75rem 0;font-size:1rem;font-weight:600;color:#1a1a1a}.content-section p{margin:0.5rem 0;line-height:1.6;color:#4a4a4a}.content-section code{background:rgba(0, 0, 0, 0.05);padding:0.2em 0.4em;border-radius:3px;font-size:0.9em}.code-panel{position:sticky;top:calc(var(--navbar-height, 64px) + 6rem);height:calc(\n 100vh - var(--navbar-height, 64px) - 6rem\n );display:flex;flex-direction:column;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;background:#1e1e1e;box-shadow:0 4px 6px rgba(0, 0, 0, 0.1)}.code-panel [data-component-part=\"code-block-root\"]{padding:0rem 1rem}.code-panel .code-block{margin:0}.code-header{display:flex;justify-content:space-between;align-items:center;padding:0.4rem 1rem;background:#0b1e3d;border-bottom:1px solid #404040;color:white;font-size:0.875rem;font-family:'Monaco', 'Menlo', 'Ubuntu Mono', monospace}.copy-btn{display:flex;align-items:center;gap:0.5rem;padding:0.375rem 0.75rem;background:transparent;border:1px solid #404040;border-radius:4px;color:#a0a0a0;cursor:pointer;transition:all 0.2s ease;font-size:0.875rem}.copy-btn:hover{background:#404040;border-color:#606060;color:#fff}.copy-btn svg{width:16px;height:16px}.copy-btn .icon-check{display:none}.copy-btn[data-copied=\"true\"] .icon-copy{display:none}.copy-btn[data-copied=\"true\"] .icon-check{display:block;color:#10b981}.code-content{position:relative;flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:auto;background:#0b1e3d;scroll-behavior:smooth;padding:14px 0px}.code-content::-webkit-scrollbar{width:8px;height:8px}.code-content::-webkit-scrollbar-track{background:#2d2d2d}.code-content::-webkit-scrollbar-thumb{background:#404040;border-radius:4px}.code-content::-webkit-scrollbar-thumb:hover{background:#606060}.code-content pre{margin:0;padding:0rem 1rem;background:transparent;color:#d4d4d4;font-family:'Monaco', 'Menlo', 'Ubuntu Mono', monospace;font-size:0.875rem;line-height:1.6;white-space:pre;word-wrap:normal;overflow-wrap:normal;position:relative}.code-content pre code{background:transparent;padding:0;color:inherit;font-size:inherit;border-radius:0;display:block;white-space:pre}.code-line{display:block;padding-left:1rem;padding-right:1rem;margin-left:-1rem;margin-right:-1rem;transition:all 0.2s ease;position:relative;white-space:pre;line-height:inherit;border-left:2px solid transparent}.code-line::after{content:'\\a';white-space:pre}.code-line.highlighted{background:rgba(200, 200, 200, 0.15)!important;border-left:2px solid #d0d0d0;padding-left:calc(1rem - 2px);min-height:1.5em}.code-line.highlighted::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:#d0d0d0;z-index:1}.code-line.highlighted+.code-line.highlighted{border-top:none}.code-line.highlighted:not(.code-line.highlighted+.code-line.highlighted){border-top-left-radius:4px}.code-line.highlighted:not(:has(+.code-line.highlighted)){border-bottom-left-radius:4px}.line-number{display:inline-block;min-width:2.5em;padding-right:1em;margin-right:0.5em;text-align:right;color:#858585;user-select:none;border-right:1px solid #404040}@media (prefers-color-scheme: dark){.content-section p{color:#c0c0c0}.content-section code{background:rgba(255, 255, 255, 0.1)}.code-panel{border-color:#404040}}@media (max-width: 768px){.code-panel{position:relative;top:0;max-height:400px}.split-layout{grid-template-columns:1fr}}.code-content [data-testid=\"copy-code-button\"]{display:none!important}.code-content #ask-ai-code-block-button{display:none!important}div[data-fade-overlay=\"true\"]{--fade-color-light: transparent !important;--fade-color-dark: transparent !important;display:none!important}:has([data-floating-buttons])>[data-component-part=code-block-root] pre>code{padding-right:0px!important}@media (max-width: 768px){.code-panel{position:relative;top:0;height:400px}}"},{"filePath":"snippets/components/ConnectorDetailsHeader/ConnectorDetailsHeader.css","content":".container{margin:48px 0px!important;display:flex;flex-direction:column;gap:6px}.Heading{display:flex;justify-content:space-between;padding-bottom:8px;border-bottom:1px solid var(--default-border-color)}.ConnectorName{font-size:32px;font-weight:700;margin-bottom:0px}.PlatformDetails{display:flex;align-items:center;gap:4px;font-size:14px;color:var(--gray-text-color)}.PlatformIcon{padding:4px;background-color:var(--connector-icon-bg-color);border:1px solid var(--default-border-color);border-radius:12px}.ImageContainer{background-color:var(--connector-icon-bg-color);padding:12px;border:1px solid var(--default-border-color);border-radius:28px}.IconContainer{background-color:#F8F9FC;padding:16px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;flex-shrink:0}.ConnectorIcon{width:32px!important;height:32px!important;object-fit:contain;display:block;margin:0}.FeaturesHeading{font-size:14px;color:var(--gray-text-color)}.SubHeading{display:flex;flex-direction:column;gap:8px}.FeaturesList{display:flex;flex-wrap:wrap;gap:12px}.FeatureTag{padding:4px 10px;font-size:12px;border-radius:14px;width:fit-content;display:flex;align-items:center;gap:4px}.AvailableFeature{color:var(--green-tag-color);border:1px solid var(--green-tag-color);background-color:var(--green-tag-bg-color)}.UnavailableFeature{color:var(--orange-tag-color);border:1px solid var(--orange-tag-color);background-color:var(--orange-tag-bg-color)}.StageBadge{font-size:10px;height:auto;color:var(--green-tag-color)}"},{"filePath":"snippets/components/ConnectorGrid/Integrations.css","content":".no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.integrations-section{padding:3rem 1rem 9rem;max-width:1300px;margin:0 auto}.integrations-card{background:#FAFAFA;border-radius:12px;border:1px solid #EAECF5;display:flex;height:660px;overflow:hidden;position:relative;padding:40px 40px 40px 0px}.integrations-mobile-header{display:none;width:100%;background:#ffffff;border-bottom:1px solid #d9daee;padding:32px;font-size:20px;justify-content:center;align-items:center;gap:12px;position:sticky;top:0;z-index:15;cursor:pointer}.arrow{transition:transform 0.3s ease}.arrow.open{transform:rotate(180deg)}.arrow-down{width:10px;height:10px}.integrations-sidebar{width:220px;border-right:1px solid #EAECF5;display:flex;flex-direction:column;position:sticky;top:0;z-index:5}.sidebar-item{display:block;width:100%;padding:12px 22px;font-size:16px;color:#535862;cursor:pointer;white-space:nowrap;flex-shrink:0;text-align:right;font-weight:500;border-right:2px solid transparent}.sidebar-item:hover{color:#414651;border-right:2px solid #D5D9EB}.sidebar-item.active{border-right:2px solid #004CD3;font-weight:600;color:#004CD3}.integrations-grid{flex:1;padding:20px 32px;overflow-y:auto;display:grid;gap:20px;align-content:flex-start}.integrations-grid.desktop{grid-template-columns:repeat(auto-fill, minmax(200px, 1fr))}.integrations-grid.mobile{display:none}.integration-card{max-height:110px;text-decoration:none;display:flex;align-items:center;gap:12px;background-color:white;box-shadow:0px 4px 12px -1px #0A0D1214;border-radius:12px;padding:12px 20px;box-sizing:border-box;transition:all 0.3s ease}.integration-card span{color:#181D27;font-weight:500;font-size:16px;line-height:120%}a.integration-card span:hover{text-decoration:none}a.integration-card:hover{box-shadow:0px 3px 3px -1.5px #0A0D120A,\n 0px 8px 8px -4px #0A0D1208,\n 0px 20px 24px -4px #0A0D1214;padding:16px 24px;margin:-4px;text-decoration:none;transform:translateY(-2px)}.integration-card img{width:32px;height:32px;object-fit:contain;flex-shrink:0}.load-more{grid-column:span 2;padding:24px;font-size:20px;background:#ffffff;border:none;cursor:pointer}@media (max-width: 1024px){.integrations-card{flex-direction:column;height:auto;padding:0px;overflow:auto}.integrations-mobile-header{display:flex}.integrations-sidebar{display:none;width:100%;position:absolute;top:98px;left:0;right:0;border-right:none;border-bottom:1px solid #d9daee;background:#ffffff;overflow-y:scroll}.integrations-sidebar.open{display:block}.sidebar-item{text-align:center}.sidebar-item.active{border-right:none}.integrations-grid.desktop{display:none}.integrations-grid.mobile{display:grid;grid-template-columns:repeat(2, 1fr);padding:24px}}"},{"filePath":"style.css","content":".homepage-container,.sdk-api-container{max-width:1440px;margin:0 auto;padding:0px 10px 40px}.collate-ai-iframe{margin:32px 0px 40px}.banner-content{padding:96px 0;background:radial-gradient(46.63% 44.4% at 50% 50%, rgba(201, 207, 255, 0.2) 0%, rgba(255, 255, 255, 0.2) 100%)}.page-header{color:#181D27!important;font-weight:600;font-size:56px;text-align:center;margin-top:24px}#header-highlight{background:linear-gradient(to top, #016AFB 0%, #00E0EE 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.page-description{text-align:center;color:#717680;font-size:20px;margin-top:20px}.header-description{font-size:18px;margin-top:16px}.chips{display:flex;justify-content:center;gap:24px;margin-top:24px}.chip{padding:8px 12px;border-radius:100px;box-shadow:0px 4px 12px -1px rgba(10, 13, 18, 0.08);display:flex;gap:12px;align-items:center;font-weight:500;width:max-content}.chip.blue{background:linear-gradient(93.13deg, #EBF9FF 0%, #ECF4FF 189.43%);color:#194185}.chip.blue:hover{background:linear-gradient(93.13deg, #E5F7FF 0%, #DDECFF 189.43%);color:#175CD3}.chip.purple{background-color:#F0F9FF;color:#0BA5EC;margin:0 auto;padding:8px 20px;box-shadow:none;font-size:14px}.release-banner{max-width:1300px;margin:0 auto;background:linear-gradient(135deg, rgba(195, 201, 252, 0.5) 0%, rgba(142, 234, 252, 0.5) 100%);padding:48px 100px;border-radius:24px}.banner-image{width:1200px;border:3px solid #BED2FB;border-radius:16px;box-shadow:0px 2px 2px -1px #0A0D120A,\n 0px 4px 6px -2px #0A0D1208,\n 0px 12px 16px -4px #0A0D1214}.release-banner-content{display:grid;grid-template-columns:repeat(2, 1fr);gap:50px;align-items:center}.release-banner-content h2{color:#181D27;font-weight:500;font-size:32px;margin-bottom:16px}.release-banner-content p{color:#414651;font-size:18px;margin-bottom:40px}.release-banner-content a{background-color:white;box-shadow:0px 2px 2px -1px #0A0D120A,\n 0px 4px 6px -2px #0A0D1208,\n 0px 12px 16px -4px #0A0D1214;padding:12px 24px;border-radius:99px;font-size:18px;font-weight:500;color:#131313}.release-banner-content a:hover{text-decoration:underline}.guides,.highlights,.quick-links{padding:48px 48px 96px}.guide-header{font-weight:500;font-size:40px;color:#181D27;text-align:center;margin-top:24px}.guide-list{display:grid;grid-template-columns:repeat(7, 1fr);gap:24px;margin:0 auto;margin-top:52px;max-width:100%}.guide-card{box-shadow:0px 4px 12px -1px rgba(10, 13, 18, 0.08);padding:20px;border-radius:20px;display:flex;flex-direction:column;align-items:center;color:#252B37;font-weight:500;font-size:18px;gap:16px;width:100%;transition:all 0.3s ease;text-align:center}.guide-card:hover{box-shadow:0px 20px 24px -4px #0A0D1214;transform:translateY(-4px);padding:24px;margin:-4px}a.guide-card img{width:80px!important;height:80px!important}.see-all{text-align:center;margin:64px auto 0px;color:#004CD3;font-size:18px;font-weight:500;box-shadow:0px 2px 2px -1px rgba(10, 13, 18, 0.04),\n 0px 4px 6px -2px rgba(10, 13, 18, 0.03),\n 0px 12px 16px -4px rgba(10, 13, 18, 0.08);width:max-content;padding:12px 24px;background-color:#EAF4FF;border-radius:100px}.see-all:hover{background-color:#CDE4FE;color:#1849A9}.highlight-cards{max-width:850px;display:grid;grid-template-columns:repeat(2, 1fr);gap:32px;margin:60px auto 0px}.highlight-card{box-shadow:0px 4px 12px -1px rgba(10, 13, 18, 0.08);padding:20px;border-radius:12px;transition:all 0.3s ease}.highlight-card p{font-size:18px;color:#717680}.highlight-card:hover{box-shadow:0px 3px 3px -1.5px rgba(10, 13, 18, 0.04),\n 0px 8px 8px -4px rgba(10, 13, 18, 0.03),\n 0px 20px 24px -4px rgba(10, 13, 18, 0.08);padding:24px;margin:-4px;transform:translateY(-2px)}.highlight-card .icon{width:48px!important;height:48px!important}.highlight-header{font-size:20px;font-weight:500;color:#181D27;margin-top:12px}.read-more{margin-top:20px;display:flex;gap:10px;align-items:center;color:#175CD3;font-weight:600}.highlight-card:hover .read-more{color:#1849A9}.read-more img{margin-top:2px}.links{margin:0 auto;margin-top:40px;max-width:80%;display:grid;grid-template-columns:repeat(3, 1fr);justify-items:center}.link-header{color:#181D27;display:flex;gap:10px;align-items:center;margin-bottom:16px}.link-header h3{font-size:20px;font-weight:500}.link-list{color:#175CD3;font-weight:500;display:flex;flex-direction:column;gap:12px}.link-list a:hover{text-decoration:underline;color:#1849A9}.collate-video{background:linear-gradient(135deg, rgba(195, 201, 252, 0.5) 0%, rgba(142, 234, 252, 0.5) 100%);border-radius:24px;max-width:90%;margin:32px auto 64px;padding:36px 80px}.video-content{display:grid;grid-template-columns:repeat(2, 1fr);align-items:center;gap:16px}.video-container{width:100%;max-width:600px;margin:20px auto;padding:0 16px;box-sizing:border-box}.video-container iframe{width:100%;height:auto;aspect-ratio:16 / 9;display:block;border-radius:20px;border:3px solid #BED2FB}.video{border-radius:20px;border:3px solid #BED2FB;max-width:100%;height:auto;box-shadow:0px 2px 2px -1px rgba(10, 13, 18, 0.04),\n 0px 4px 6px -2px rgba(10, 13, 18, 0.03),\n 0px 12px 16px -4px rgba(10, 13, 18, 0.08)}.video-chip{background-color:rgba(255, 255, 255, 0.4);width:max-content;padding:12px 8px;border-radius:24px;color:#0086C9;font-size:12px}.video-description{color:#414651;font-size:18px;max-width:90%}.product-demo{background-color:#0BA5EC;padding:8px 14px;color:white;border-radius:24px;margin-right:8px;font-size:12px}.video-header{text-align:left;margin-bottom:16px}.external-links{padding:36px 80px}.explore-container{display:grid;grid-template-columns:repeat(3, 1fr)}.explore-items{display:flex;gap:20px;width:100%}.explore-header{color:#252B37;font-size:24px;font-weight:600;letter-spacing:-2%}.explore-desc{font-size:18px;color:#717680;margin-top:4px}.explore-card{background-color:#F4F9FF;box-shadow:0px 4px 12px -8px #0026543D;padding:12px 20px;border-radius:12px;color:#535862;font-size:14px;font-weight:400;transition:all 0.3s ease}.explore-card:hover{box-shadow:0px 3px 3px -1.5px rgba(10, 13, 18, 0.04),\n 0px 8px 8px -4px rgba(10, 13, 18, 0.03),\n 0px 20px 24px -4px rgba(10, 13, 18, 0.08);padding:16px 24px;margin:-4px;transform:translateY(-2px)}.explore-card-header{display:flex;gap:10px}.explore-card-header div{color:#252B37;font-weight:500;font-size:18px}.home-footer{display:flex;justify-content:space-between;padding:36px 80px 0px;color:#717680}.home-footer-links{display:flex;gap:20px}.footer-link-name{color:#252B37;font-weight:400}.footer-link-name:hover{color:#181D27;text-decoration:underline}.home-footer-social{display:flex;gap:8px}.social-link{padding:4px 8px;border-radius:4px}.social-link:hover{background-color:#F8F9FC}.connector-page div[data-component-part=\"card-icon\"]{background-color:#F8F9FC;padding:21px 20px;border-radius:100%;display:inline-flex;align-items:center;justify-content:center}.connector-page div[data-component-part=\"card-icon\"]>*{position:relative;z-index:1}.connector-page .card [data-component-part=\"card-content-container\"]{padding:16px}.card-details{display:flex;gap:6px;align-items:center}.card-logo{width:20px;height:20px;margin:0px}.products-container{max-width:1150px;margin:0 auto;padding:60px 14px 40px}.products-container h1{font-size:30px!important}.products-container [data-as=\"p\"]:first-of-type{display:block;margin-bottom:40px}.product-cards{margin-top:16px;padding-bottom:48px}.product-cards .card [data-component-part=\"card-content\"]{margin-top:4px}.products-container .external-links{padding:64px 0px 36px}.products-container .home-footer{padding:36px 0px 0px}.sdk-api-container{padding:72px 0px;max-width:1300px}.sdk-api-container span[data-as=\"p\"]{display:block;margin-bottom:8px;color:#414651}.sdk-api-container a.link{color:#004CD3!important}.sdk-api-container h3{color:#222244;font-size:20px}.api-header{display:grid;grid-template-columns:repeat(2, 1fr);gap:40px;margin-top:16px;padding-bottom:56px;border-bottom:1px solid #EAECF5}.sdk-api-container .code-group{background-color:#515865}.sdk-api-container .code-group button{color:white!important;font-weight:600;font-size:14px}.sdk-api-container .code-group button .absolute{display:none}.sdk-api-container [data-component-part=\"code-block-root\"]{background-color:#3E444F!important}.sdk-api-container [data-component-part=\"code-block-root\"] pre,.sdk-api-container [data-component-part=\"code-block-root\"] pre .line span{color:white!important}.client-sdks{border:1px solid #E9EAEB;border-radius:8px}.client-header{color:#414651;font-weight:600;padding:24px 24px 0px;background-color:#FAFAFA;border-top-left-radius:8px;border-top-right-radius:8px}.client-sdks [role=\"tablist\"]{margin-bottom:0px!important;display:flex;justify-content:center;gap:100px}.client-sdks [data-component-part=\"tabs-list\"]{padding:10px 24px 0px;background-color:#FAFAFA}.client-sdks [data-active=\"true\"]{border-bottom:3px solid #1570EF}.client-sdks [data-active=\"false\"]{border-bottom:none}.client-sdks [data-component-part=\"tab-button\"]{display:flex;flex-direction:column;color:#181D27!important}.client-sdks [data-component-part=\"tab-button\"] img{width:40px;height:40px}.client-sdks [data-component-part=\"tab-content\"]{background-color:#F5F5F5;padding:10px 24px}.api-header-auth{display:grid;grid-template-columns:repeat(2, 1fr);gap:40px;padding-top:48px;padding-bottom:56px;border-bottom:1px solid #EAECF5}.api-header-auth h2{color:#222244;font-size:20px;font-weight:600;margin-bottom:12px}.sdk-api-container [data-component-part=\"code-group-tab-bar\"] div:first-child span{color:white!important;font-size:14px;font-weight:600;margin-left:8px}.sdk-api-container [data-component-part=\"code-group-tab-bar\"] [data-testid=\"copy-code-button\"] svg{color:white}.sdk-api-container [data-component-part=\"code-group-tab-bar\"] .group{background-color:#252B37;border:1px solid #5B626F;padding:4px;border-radius:4px;color:white}.sdk-api-container [data-component-part=\"code-group-tab-bar\"] .group div svg:first-of-type{display:none!important}.sdk-api-container [data-component-part=\"code-group-tab-bar\"] .group div p{color:white;margin:0px}.sdk-api-container [data-component-part=\"code-group-tab-bar\"] .group div:hover{background-color:transparent}@media (max-width: 1280px){.guide-list{grid-template-columns:repeat(3, 1fr)}.links{max-width:100%}.collate-video,.external-links,.home-footer{padding:32px 56px}.release-banner{padding:40px 52px}}@media (max-width: 1220px){.chips{display:grid;grid-template-columns:repeat(4, 1fr);max-width:auto;justify-items:center}}@media (max-width: 1024px){.release-banner-content{grid-template-columns:repeat(1, 1fr)}.release-banner h2{font-size:28px}.video-content{grid-template-columns:repeat(1, 1fr);gap:28px}.explore-container{grid-template-columns:repeat(1, 1fr);gap:32px}.home-footer{display:grid;grid-template-columns:repeat(3, 1fr);row-gap:20px}.collate-tm{grid-column:span 3/span 3}.home-footer-links{grid-column:span 2/span 2}.home-footer-social{justify-self:flex-end}}@media (max-width: 768px){.page-header{font-size:48px}.chips{grid-template-columns:repeat(2, 1fr);max-width:400px;margin:40px auto 0}.guide-list{grid-template-columns:repeat(2, 1fr)}.links{grid-template-columns:repeat(2, 1fr);justify-items:start;row-gap:40px}.video-container{padding:0 12px;margin:16px auto}.external-links,.home-footer{padding:24px}.home-footer-links{flex-direction:column}}@media (max-width: 640px){.chips{grid-template-columns:repeat(1, 1fr);max-width:auto;justify-items:center}.release-banner{padding:40px 20px}.guide-list{grid-template-columns:repeat(1, 1fr)}.highlight-cards{grid-template-columns:repeat(1, 1fr)}.links{grid-template-columns:repeat(1, 1fr)}.collate-video{padding:24px}.explore-items{flex-direction:column}}.chat-assistant-floating-input::before{display:none!important}"},{"filePath":"snippets/components/CodeLayout/CodeLayout.css","content":".code-layout{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin:2rem 0;align-items:start;width:100%}.code-layout h2{margin-top:0px}.code-layout-sticky{position:-webkit-sticky;position:sticky;top:132px;align-self:flex-start;max-height:calc(100vh - 132px);overflow-y:auto;z-index:10}"},{"filePath":"ai-2-0/snippets/components/CodeLayout/CodeLayout.css","content":".code-layout{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin:2rem 0;align-items:start;width:100%}.code-layout h2{margin-top:0px}.code-layout-sticky{position:-webkit-sticky;position:sticky;top:132px;align-self:flex-start;max-height:calc(100vh - 132px);overflow-y:auto;z-index:10}"},{"filePath":"ai-2-0/snippets/components/CodePreview.css","content":".split-layout{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin:2rem 0;align-items:start}@media (max-width: 768px){.split-layout{grid-template-columns:1fr;gap:1rem}}.code-content .code-block [data-component-part=\"code-block-root\"]{background-color:#0b1e3d!important}.content-panel{display:flex;flex-direction:column;gap:1.5rem;padding-right:1rem}.content-section{padding:0.5rem 1rem;border-left:2px solid transparent;border-radius:6px;cursor:pointer;position:relative;box-sizing:border-box;transition:background 0.25s ease,\n border-color 0.25s ease,\n box-shadow 0.25s ease}.content-section:hover{background:linear-gradient(\n 90deg,\n rgba(176, 176, 176, 0.08) 0%,\n rgba(176, 176, 176, 0.03) 100%\n );border-left-color:rgba(176, 176, 176, 0.5)}.content-section.active{background:linear-gradient(\n 90deg,\n rgba(176, 176, 176, 0.15) 0%,\n rgba(176, 176, 176, 0.05) 100%\n );border-left-color:#b0b0b0;box-shadow:0 2px 8px rgba(176, 176, 176, 0.1),\n inset 0 0 20px rgba(176, 176, 176, 0.05);color:rgb(63, 65, 69)}.content-section.active::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(\n 180deg,\n #c0c0c0 0%,\n #b0b0b0 50%,\n #a0a0a0 100%\n )}.content-section h4{margin:0 0 0.75rem 0;font-size:1rem;font-weight:600;color:#1a1a1a}.content-section p{margin:0.5rem 0;line-height:1.6;color:#4a4a4a}.content-section code{background:rgba(0, 0, 0, 0.05);padding:0.2em 0.4em;border-radius:3px;font-size:0.9em}.code-panel{position:sticky;top:calc(var(--navbar-height, 64px) + 6rem);height:calc(\n 100vh - var(--navbar-height, 64px) - 6rem\n );display:flex;flex-direction:column;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;background:#1e1e1e;box-shadow:0 4px 6px rgba(0, 0, 0, 0.1)}.code-panel [data-component-part=\"code-block-root\"]{padding:0rem 1rem}.code-panel .code-block{margin:0}.code-header{display:flex;justify-content:space-between;align-items:center;padding:0.4rem 1rem;background:#0b1e3d;border-bottom:1px solid #404040;color:white;font-size:0.875rem;font-family:'Monaco', 'Menlo', 'Ubuntu Mono', monospace}.copy-btn{display:flex;align-items:center;gap:0.5rem;padding:0.375rem 0.75rem;background:transparent;border:1px solid #404040;border-radius:4px;color:#a0a0a0;cursor:pointer;transition:all 0.2s ease;font-size:0.875rem}.copy-btn:hover{background:#404040;border-color:#606060;color:#fff}.copy-btn svg{width:16px;height:16px}.copy-btn .icon-check{display:none}.copy-btn[data-copied=\"true\"] .icon-copy{display:none}.copy-btn[data-copied=\"true\"] .icon-check{display:block;color:#10b981}.code-content{position:relative;flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:auto;background:#0b1e3d;scroll-behavior:smooth;padding:14px 0px}.code-content::-webkit-scrollbar{width:8px;height:8px}.code-content::-webkit-scrollbar-track{background:#2d2d2d}.code-content::-webkit-scrollbar-thumb{background:#404040;border-radius:4px}.code-content::-webkit-scrollbar-thumb:hover{background:#606060}.code-content pre{margin:0;padding:0rem 1rem;background:transparent;color:#d4d4d4;font-family:'Monaco', 'Menlo', 'Ubuntu Mono', monospace;font-size:0.875rem;line-height:1.6;white-space:pre;word-wrap:normal;overflow-wrap:normal;position:relative}.code-content pre code{background:transparent;padding:0;color:inherit;font-size:inherit;border-radius:0;display:block;white-space:pre}.code-line{display:block;padding-left:1rem;padding-right:1rem;margin-left:-1rem;margin-right:-1rem;transition:all 0.2s ease;position:relative;white-space:pre;line-height:inherit;border-left:2px solid transparent}.code-line::after{content:'\\a';white-space:pre}.code-line.highlighted{background:rgba(200, 200, 200, 0.15)!important;border-left:2px solid #d0d0d0;padding-left:calc(1rem - 2px);min-height:1.5em}.code-line.highlighted::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:#d0d0d0;z-index:1}.code-line.highlighted+.code-line.highlighted{border-top:none}.code-line.highlighted:not(.code-line.highlighted+.code-line.highlighted){border-top-left-radius:4px}.code-line.highlighted:not(:has(+.code-line.highlighted)){border-bottom-left-radius:4px}.line-number{display:inline-block;min-width:2.5em;padding-right:1em;margin-right:0.5em;text-align:right;color:#858585;user-select:none;border-right:1px solid #404040}@media (prefers-color-scheme: dark){.content-section p{color:#c0c0c0}.content-section code{background:rgba(255, 255, 255, 0.1)}.code-panel{border-color:#404040}}@media (max-width: 768px){.code-panel{position:relative;top:0;max-height:400px}.split-layout{grid-template-columns:1fr}}.code-content [data-testid=\"copy-code-button\"]{display:none!important}.code-content #ask-ai-code-block-button{display:none!important}div[data-fade-overlay=\"true\"]{--fade-color-light: transparent !important;--fade-color-dark: transparent !important;display:none!important}:has([data-floating-buttons])>[data-component-part=code-block-root] pre>code{padding-right:0px!important}@media (max-width: 768px){.code-panel{position:relative;top:0;height:400px}}"},{"filePath":"ai-2-0/snippets/components/ConnectorDetailsHeader/ConnectorDetailsHeader.css","content":".container{margin:48px 0px!important;display:flex;flex-direction:column;gap:6px}.Heading{display:flex;justify-content:space-between;padding-bottom:8px;border-bottom:1px solid var(--default-border-color)}.ConnectorName{font-size:32px;font-weight:700;margin-bottom:0px}.PlatformDetails{display:flex;align-items:center;gap:4px;font-size:14px;color:var(--gray-text-color)}.PlatformIcon{padding:4px;background-color:var(--connector-icon-bg-color);border:1px solid var(--default-border-color);border-radius:12px}.ImageContainer{background-color:var(--connector-icon-bg-color);padding:12px;border:1px solid var(--default-border-color);border-radius:28px}.IconContainer{background-color:#F8F9FC;padding:16px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;flex-shrink:0}.ConnectorIcon{width:32px!important;height:32px!important;object-fit:contain;display:block;margin:0}.FeaturesHeading{font-size:14px;color:var(--gray-text-color)}.SubHeading{display:flex;flex-direction:column;gap:8px}.FeaturesList{display:flex;flex-wrap:wrap;gap:12px}.FeatureTag{padding:4px 10px;font-size:12px;border-radius:14px;width:fit-content;display:flex;align-items:center;gap:4px}.AvailableFeature{color:var(--green-tag-color);border:1px solid var(--green-tag-color);background-color:var(--green-tag-bg-color)}.UnavailableFeature{color:var(--orange-tag-color);border:1px solid var(--orange-tag-color);background-color:var(--orange-tag-bg-color)}.StageBadge{font-size:10px;height:auto;color:var(--green-tag-color)}"},{"filePath":"ai-2-0/snippets/components/ConnectorFilter/ConnectorFilter.css","content":".connector-filter{--connector-filter-accent: #1570ef;position:sticky;top:0;z-index:20;margin:20px 0 28px;padding:16px;border:1px solid var(--default-border-color, #e5e7eb);border-radius:8px;background-color:var(--background-color, #fff);box-shadow:0 2px 8px rgba(15, 23, 42, 0.06)}.connector-filter-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}.connector-filter-field{display:flex;flex-direction:column;gap:6px;flex:1 1 160px;min-width:140px}.connector-filter-search-field{flex:1 1 170px;min-width:140px}.connector-filter-field label{font-size:14px;font-weight:600;color:var(--default-text-color, #374151)}.connector-filter-search{display:flex;align-items:center;gap:8px;height:36px;padding:0 10px;border:1px solid var(--select-border-color, #d1d5db);border-radius:6px;background-color:var(--background-color, #fff);color:var(--gray-text-color, #6b7280)}.connector-filter-search:focus-within{border-color:var(--connector-filter-accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--connector-filter-accent) 20%, transparent)}.connector-filter-search svg{flex-shrink:0}.connector-filter-search input{flex:1;min-width:0;border:none;outline:none;background:transparent;font-size:13px;color:var(--default-text-color, #111827)}.connector-filter-dropdown{position:relative}.connector-filter-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;height:36px;padding:0 10px;border:1px solid var(--select-border-color, #d1d5db);border-radius:6px;background-color:var(--background-color, #fff);color:var(--default-text-color, #111827);font-size:13px;cursor:pointer;text-align:left}.connector-filter-trigger:hover{border-color:var(--connector-filter-accent)}.connector-filter-trigger[aria-expanded=\"true\"]{border-color:var(--connector-filter-accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--connector-filter-accent) 20%, transparent)}.connector-filter-trigger span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.connector-filter-chevron{flex-shrink:0;color:var(--gray-text-color, #6b7280);transition:transform 0.15s ease}.connector-filter-chevron-open{transform:rotate(180deg);color:var(--connector-filter-accent)}.connector-filter-menu{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:30;max-height:320px;overflow-y:auto;margin:0;padding:6px;list-style:none;border:1px solid var(--default-border-color, #e5e7eb);border-radius:8px;background-color:var(--background-color, #fff);box-shadow:0 8px 24px rgba(15, 23, 42, 0.12)}.connector-filter-menu li{list-style:none}.connector-filter-menu li::marker,.connector-filter-menu li::before{content:none}.connector-filter-menu li[role=\"option\"]{padding:7px 10px;border-radius:5px;font-size:13px;color:var(--default-text-color, #111827);cursor:pointer}.connector-filter-menu li[role=\"option\"]:hover{background-color:var(--primary-background-color, rgba(21, 112, 239, 0.08))}.connector-filter-menu li[role=\"option\"].active{background-color:var(--primary-background-color, rgba(21, 112, 239, 0.1));color:var(--connector-filter-accent);font-weight:600}.connector-filter-group-label{padding:6px 10px 4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;color:var(--gray-text-color, #9ca3af)}.connector-filter-reset{flex-shrink:0;margin-left:auto;height:36px;padding:0 14px;border:1px solid var(--connector-filter-accent);border-radius:6px;background-color:transparent;color:var(--connector-filter-accent);font-size:13px;font-weight:600;cursor:pointer}.connector-filter-reset:hover{background-color:color-mix(in srgb, var(--connector-filter-accent) 10%, transparent)}"},{"filePath":"ai-2-0/snippets/components/ConnectorGrid/Integrations.css","content":".no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.integrations-section{padding:3rem 1rem 9rem;max-width:1300px;margin:0 auto}.integrations-card{background:#FAFAFA;border-radius:12px;border:1px solid #EAECF5;display:flex;height:660px;overflow:hidden;position:relative;padding:40px 40px 40px 0px}.integrations-mobile-header{display:none;width:100%;background:#ffffff;border-bottom:1px solid #d9daee;padding:32px;font-size:20px;justify-content:center;align-items:center;gap:12px;position:sticky;top:0;z-index:15;cursor:pointer}.arrow{transition:transform 0.3s ease}.arrow.open{transform:rotate(180deg)}.arrow-down{width:10px;height:10px}.integrations-sidebar{width:220px;border-right:1px solid #EAECF5;display:flex;flex-direction:column;position:sticky;top:0;z-index:5}.sidebar-item{display:block;width:100%;padding:12px 22px;font-size:16px;color:#535862;cursor:pointer;white-space:nowrap;flex-shrink:0;text-align:right;font-weight:500;border-right:2px solid transparent}.sidebar-item:hover{color:#414651;border-right:2px solid #D5D9EB}.sidebar-item.active{border-right:2px solid #004CD3;font-weight:600;color:#004CD3}.integrations-grid{flex:1;padding:20px 32px;overflow-y:auto;display:grid;gap:20px;align-content:flex-start}.integrations-grid.desktop{grid-template-columns:repeat(auto-fill, minmax(200px, 1fr))}.integrations-grid.mobile{display:none}.integration-card{max-height:110px;text-decoration:none;display:flex;align-items:center;gap:12px;background-color:white;box-shadow:0px 4px 12px -1px #0A0D1214;border-radius:12px;padding:12px 20px;box-sizing:border-box;transition:all 0.3s ease}.integration-card span{color:#181D27;font-weight:500;font-size:16px;line-height:120%}a.integration-card span:hover{text-decoration:none}a.integration-card:hover{box-shadow:0px 3px 3px -1.5px #0A0D120A,\n 0px 8px 8px -4px #0A0D1208,\n 0px 20px 24px -4px #0A0D1214;padding:16px 24px;margin:-4px;text-decoration:none;transform:translateY(-2px)}.integration-card img{width:32px;height:32px;object-fit:contain;flex-shrink:0}.load-more{grid-column:span 2;padding:24px;font-size:20px;background:#ffffff;border:none;cursor:pointer}@media (max-width: 1024px){.integrations-card{flex-direction:column;height:auto;padding:0px;overflow:auto}.integrations-mobile-header{display:flex}.integrations-sidebar{display:none;width:100%;position:absolute;top:98px;left:0;right:0;border-right:none;border-bottom:1px solid #d9daee;background:#ffffff;overflow-y:scroll}.integrations-sidebar.open{display:block}.sidebar-item{text-align:center}.sidebar-item.active{border-right:none}.integrations-grid.desktop{display:none}.integrations-grid.mobile{display:grid;grid-template-columns:repeat(2, 1fr);padding:24px}}"},{"filePath":"ai-2-0/snippets/components/ReleaseCarousel/ReleaseCarousel.css","content":".release-carousel{position:relative}.release-carousel-viewport{overflow:hidden}.release-carousel-content [data-as=\"p\"]{display:block;margin-bottom:24px;color:#344054;font-size:18px}.release-carousel-content [data-as=\"p\"] strong{color:#181D27;font-weight:700}.release-carousel-content a{display:inline-block}.release-carousel-title-row{display:flex;align-items:center;gap:12px;margin-bottom:16px}.release-carousel-content .release-carousel-title-row h2{margin:0}.release-carousel-eyebrow{display:inline-block;flex-shrink:0;background-color:#F0F9FF;color:#0BA5EC;padding:4px 14px;border-radius:100px;font-size:13px;font-weight:600;letter-spacing:0.02em;text-transform:uppercase}.release-carousel-content.slide-next{animation:release-carousel-slide-next 0.45s ease}.release-carousel-content.slide-prev{animation:release-carousel-slide-prev 0.45s ease}@keyframes release-carousel-slide-next{from{opacity:0;transform:translateX(60px)}to{opacity:1;transform:translateX(0)}}@keyframes release-carousel-slide-prev{from{opacity:0;transform:translateX(-60px)}to{opacity:1;transform:translateX(0)}}.release-carousel-image{width:100%;max-width:1200px;display:block;border:3px solid #BED2FB;border-radius:16px;box-shadow:0px 2px 2px -1px #0A0D120A,\n 0px 4px 6px -2px #0A0D1208,\n 0px 12px 16px -4px #0A0D1214;cursor:zoom-in}.release-carousel-lightbox{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:40px;background-color:rgba(16, 24, 40, 0.85)}.release-carousel-lightbox-image{max-width:100%;max-height:100%;display:block;border-radius:12px;box-shadow:0px 12px 16px -4px #0A0D1214;cursor:default}.release-carousel-lightbox-close{position:absolute;top:24px;right:24px;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255, 255, 255, 0.3);background-color:rgba(255, 255, 255, 0.1);color:white;cursor:pointer;transition:background-color 0.15s ease}.release-carousel-lightbox-close:hover{background-color:rgba(255, 255, 255, 0.2)}.release-carousel .carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:1px solid #BED2FB;background-color:white;color:#181D27;box-shadow:0px 2px 2px -1px #0A0D120A,\n 0px 4px 6px -2px #0A0D1208,\n 0px 12px 16px -4px #0A0D1214;cursor:pointer;transition:background-color 0.15s ease}.release-carousel .carousel-arrow:hover{background-color:#EFF4FF}.release-carousel .carousel-arrow-prev{left:16px}.release-carousel .carousel-arrow-next{right:16px}.release-carousel .carousel-dots{display:flex;justify-content:center;gap:8px;margin-top:16px}.release-carousel .carousel-dot{width:8px;height:8px;border-radius:50%;border:none;background-color:#BED2FB;padding:0;cursor:pointer;transition:background-color 0.15s ease, transform 0.15s ease}.release-carousel .carousel-dot.active{background-color:#1570EF;transform:scale(1.2)}@media (max-width: 1024px){.release-carousel .carousel-arrow-prev{left:4px}.release-carousel .carousel-arrow-next{right:4px}}@media (max-width: 768px){.release-carousel .carousel-arrow{width:32px;height:32px}}"}],"page":{"pagePath":"ai-2-0/how-to-guides/data-quality-observability/profiler/profiler-workflow","slug":"/ai-2-0/how-to-guides/data-quality-observability/profiler/profiler-workflow","pageMetadata":{"title":"Profiler Workflow | Profiling Workflow","description":"Use profiler workflows to extract row stats, distribution, null percentages, and data health.","slug":"/ai-2-0/how-to-guides/data-quality-observability/profiler/profiler-workflow","sidebarTitle":"Profiler Workflow","href":"/ai-2-0/how-to-guides/data-quality-observability/profiler/profiler-workflow"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Use profiler workflows to extract row stats, distribution, null percentages, and data health.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,OptimizedImage,Tip,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`1`,id:`profiler-workflow`,children:`Profiler Workflow`}),`\n`,_jsx(_components.p,{children:`Configure and deploy a Profiler Agent to extract table and column metrics and run data quality tests.`}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Tip`}),`: For Datalake profiling, NaN (Not a Number) values are dropped from the DataFrame using `,_jsx(_components.code,{children:`dropna()`}),` to allow metric computation. Null values are retained so that null-count metrics remain accurate.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`configure-a-profiler-agent`,children:`Configure a Profiler Agent`}),`\n`,_jsx(_components.p,{children:`Complete metadata ingestion before configuring and deploying a Profiler Workflow. The workflow populates the Table Profile tab with table and column metrics and runs any data quality tests configured on the table.`}),`\n`,_jsx(_components.p,{children:`To deploy a Profiler Agent from the Collate UI, follow these steps:`}),`\n`,_jsx(Heading,{level:`3`,id:`1-add-a-profiler-agent`,children:`1. Add a Profiler Agent`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`In the left navigation bar, click `,_jsx(_components.strong,{children:`Connections`}),` and select the desired connection.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`On the connection details page, click the `,_jsx(_components.strong,{children:`Agents`}),` tab.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`In the `,_jsx(_components.strong,{children:`Add Agent`}),` dropdown field, click `,_jsx(_components.strong,{children:`Profiler`}),`.`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/access-profiler-agent.png?fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=450930967542c125ece70ad583e7b1ca`,alt:`Add a profiler service`,\"data-og-width\":`2758`,width:`2758`,\"data-og-height\":`1372`,height:`1372`,\"data-path\":`public/images/ai-2.0/data-observability/data-profiler/access-profiler-agent.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/access-profiler-agent.png?w=280\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=9e7d6547afe4b14fd165badd0c439912 280w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/access-profiler-agent.png?w=560\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=17c4e2d934226d1812a0fc63ff0d104c 560w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/access-profiler-agent.png?w=840\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=44e813f8b3e860e94d31fdcdfd9f948c 840w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/access-profiler-agent.png?w=1100\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=5c302679333c313840a0650567566011 1100w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/access-profiler-agent.png?w=1650\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=a5ea06ba240ba2ca6285ec4560ad667e 1650w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/access-profiler-agent.png?w=2500\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=70394897289ec34f5c13fb6c11524ef8 2500w`}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`2-configure-the-profiler-agent`,children:`2. Configure the Profiler Agent`}),`\n`,_jsxs(_components.p,{children:[`In the Configure Ingestion step, enter a unique descriptive `,_jsx(_components.strong,{children:`Name`}),` and set up the following:`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/profiler-name.png?fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=a80d91ab3fff59215344c50843a83d5e`,alt:`Set profiler configuration`,\"data-og-width\":`1940`,width:`1940`,\"data-og-height\":`702`,height:`702`,\"data-path\":`public/images/ai-2.0/data-observability/data-profiler/profiler-name.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/profiler-name.png?w=280\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=4381eeac71b37f17ba65a75108ac0db6 280w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/profiler-name.png?w=560\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=e9a72898d3fe44419c22ac03faac0d25 560w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/profiler-name.png?w=840\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=44c0afb1290bd1c09d950ff4375af833 840w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/profiler-name.png?w=1100\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=25030068498dcf7a68c17a4f3f0269dc 1100w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/profiler-name.png?w=1650\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=e7a7ee963ea1069b5b1a46b1e18b4aa6 1650w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/profiler-name.png?w=2500\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=bb73221805dd1795c6498a747c098e86 2500w`}),`\n`,_jsx(Heading,{level:`4`,id:`agent-setup`,children:`Agent Setup`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Spark Engine`}),`: The engine used to run profiling jobs. Select an engine that executes profiling queries from the following:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Native Engine`}),`: Collate’s built-in query runner. Use for most workloads where the database handles query execution without performance issues.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Spark Engine`}),`: Offloads computation to an Apache Spark cluster. Use for large-scale tables where native queries are too slow or resource-intensive.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`For setup instructions and guidance on when to use Spark Engine, see `,_jsx(_components.a,{href:`/ai-2-0/how-to-guides/data-quality-observability/profiler/spark-engine`,children:`Spark Engine Overview`}),`.`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/agent-setup.png?fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=1b76f4aa4cde76246b2f216f0f9d06b0`,alt:`Agent Setup`,\"data-og-width\":`1904`,width:`1904`,\"data-og-height\":`612`,height:`612`,\"data-path\":`public/images/ai-2.0/data-observability/data-profiler/agent-setup.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/agent-setup.png?w=280\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=d202a92ae55136111a43ae0f69ee3b96 280w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/agent-setup.png?w=560\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=117a0b87aa05e9f358f584ec30dbfdb0 560w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/agent-setup.png?w=840\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=c0041cecf638ed8de723b7696c022bef 840w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/agent-setup.png?w=1100\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=cfffdeb09211a2a4e9a8503e451d875e 1100w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/agent-setup.png?w=1650\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=08868236110d9f6a2735bd298c6715fb 1650w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/agent-setup.png?w=2500\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=fa03d684d7e0c004246c8028cd2b92b8 2500w`}),`\n`,_jsx(Heading,{level:`4`,id:`filter-patterns`,children:`Filter Patterns`}),`\n`,_jsx(_components.p,{children:`Filter patterns control which databases, schemas, and tables the profiler targets. Each pattern field accepts a regex expression with separate include and exclude lists.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Database filter pattern`}),` (Optional): Regex to include or exclude databases by name.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Schema filter pattern`}),` (Optional): Regex to include or exclude schemas by name.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Table filter pattern`}),` (Optional): Regex to include or exclude tables by name.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Classification filter pattern`}),` (Optional): Regex to target tables by classification, tag, tier, or glossary term. The profiler computes metrics only for tables whose classification matches the pattern.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Use FQN For Filtering`}),`: When enabled, regex patterns apply to the fully qualified name (for example, `,_jsx(_components.code,{children:`service_name.db_name.schema_name.table_name`}),`) instead of the raw asset name. Enable this when different schemas share the same table name across multiple databases.`]}),`\n`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/filter-pattern.png?fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=ed6cae1726ce92afab38507bf87d9450`,alt:`Filter Patterns`,\"data-og-width\":`1912`,width:`1912`,\"data-og-height\":`994`,height:`994`,\"data-path\":`public/images/ai-2.0/data-observability/data-profiler/filter-pattern.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/filter-pattern.png?w=280\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=fdb9ba0af1df80e58041a1929985f39f 280w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/filter-pattern.png?w=560\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=8de58ea9c27e29d5419b9f1cbeebbda8 560w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/filter-pattern.png?w=840\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=883656d3481f7b83ec8266fa23ba6401 840w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/filter-pattern.png?w=1100\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=7254f4c3457fe8063a9cb3bc97e18692 1100w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/filter-pattern.png?w=1650\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=e67d08d12e033557b1c6b328d9ba2164 1650w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/filter-pattern.png?w=2500\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=a732c4029b161a0f7eff6adfef9d9703 2500w`}),`\n`,_jsx(Heading,{level:`4`,id:`scope-\u0026-behaviour`,children:`Scope \u0026 Behaviour`}),`\n`,_jsx(_components.p,{children:`Control which entity types the profiler includes and how it logs activity.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Enable Debug Log`}),`: Enables debug-level logging for the profiler run. Check logs in the `,_jsx(_components.strong,{children:`Agents`}),` tab of the service.`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/scope-and-behaviour.png?fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=b8f91693897023849bc21f1232a23202`,alt:`Scope and Behaviour`,\"data-og-width\":`1910`,width:`1910`,\"data-og-height\":`314`,height:`314`,\"data-path\":`public/images/ai-2.0/data-observability/data-profiler/scope-and-behaviour.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/scope-and-behaviour.png?w=280\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=dd933ab3a8243347ffd98120a86d775c 280w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/scope-and-behaviour.png?w=560\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=788556594b7b32ac56446679551d1492 560w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/scope-and-behaviour.png?w=840\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=56c1b241f1a1ea3e9b77231207efcfce 840w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/scope-and-behaviour.png?w=1100\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=c0e0fca961182f141d5f1909b71b4cbc 1100w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/scope-and-behaviour.png?w=1650\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=8dffea0c580353e504e3491a4bb0f783 1650w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/scope-and-behaviour.png?w=2500\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=4978faee1eb920e1328bb35a1514ea00 2500w`}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`4`,id:`advanced-configuration`,children:`Advanced Configuration`}),`\n`,_jsx(_components.p,{children:`Control sampling strategy, thread usage, metric selection, and system statistics behavior.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sample Config Type`}),`: Controls how the profiler selects rows to scan. Select `,_jsx(_components.code,{children:`Dynamic`}),` (default) or `,_jsx(_components.code,{children:`Static`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`When `,_jsx(_components.code,{children:`Dynamic`}),` is selected:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Smart Sampling`}),`: When enabled (default), automatically scales the sample percentage based on table size. The profiler samples 100% of tables with up to 100,000 rows, 50% up to 1 million, 10% up to 10 million, 5% up to 100 million, 1% up to 1 billion, and 0.1% above 1 billion rows.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Dynamic sampling reads the table’s row count once per run to choose the sample size. Most databases return it from system catalogs or table statistics instead of scanning the table, so the value can be an estimate. For example, Postgres uses `,_jsx(_components.code,{children:`pg_class.reltuples`}),`. When no statistic is available, the profiler runs a `,_jsx(_components.code,{children:`COUNT(*)`}),`. It always runs a `,_jsx(_components.code,{children:`COUNT(*)`}),` for tables with a partition filter.`]}),`\n`,_jsxs(_components.p,{children:[`When `,_jsx(_components.code,{children:`Static`}),` is selected:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Profile Sample`}),`: A fixed sample size applied to every profiler run, either as a percentage of rows or an absolute row count. The value must be at least `,_jsx(_components.code,{children:`1`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Profile Sample Type`}),`: Select `,_jsx(_components.code,{children:`Percentage`}),` to sample by a fraction of the table, or `,_jsx(_components.code,{children:`Row Count`}),` to sample by an absolute number of rows.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Sampling Method Type`}),`: The SQL sampling strategy used when scanning a percentage sample. It applies to Snowflake and Timescale only. Other databases, including Postgres, ignore it. Select `,_jsx(_components.code,{children:`BERNOULLI`}),` to sample each row independently at the given probability, which is more statistically uniform but slower. Select `,_jsx(_components.code,{children:`SYSTEM`}),` to sample entire disk pages at the given probability, which is faster but less statistically uniform.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`With Static sampling, how the sample is read depends on the database:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`BigQuery, Snowflake, Timescale, SQL Server, Azure SQL, and Microsoft Fabric use `,_jsx(_components.code,{children:`TABLESAMPLE`}),`. Synapse uses it when the warehouse supports it. BigQuery uses it only for percentage samples on tables, and a row count sample still uses a `,_jsx(_components.code,{children:`LIMIT`}),`. SQL Server and Azure SQL don’t use it for views.`]}),`\n`,_jsxs(_components.li,{children:[`Postgres and other databases scan the table for a percentage sample. They assign each row a random number and keep the rows within the percentage. A row count sample uses a `,_jsx(_components.code,{children:`LIMIT`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Static sampling doesn’t look up the row count to choose the sample size. The exception is a row count sample with `,_jsx(_components.strong,{children:`Randomized Sample`}),` enabled, which runs a `,_jsx(_components.code,{children:`COUNT(*)`}),` first.`]}),`\n`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Important`}),`: Profile Sample is not supported for Druid. Druid does not support `,_jsx(_components.code,{children:`RANDOM`}),` sampling functions. Use the partitioning or sample query option to limit data scanned.`]})}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Thread Count`}),` (Optional): The number of threads used for parallel metric computation. Set to `,_jsx(_components.code,{children:`1`}),` for Snowflake due to a known issue with `,_jsx(_components.code,{children:`snowflake-connector-python`}),`. Defaults to the system value.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Timeout in Seconds`}),` (Optional): How long a profiling job waits before skipping to the next table. The profiler waits for the current query to finish before timing out. Set a query or connection timeout on your database engine if jobs risk hanging. Defaults to 12 hours (43,200 seconds).`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Metrics`}),`: The set of metrics the profiler computes. All metrics are selected by default. Deselect specific metrics to reduce profiling time or cost.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Include Views`}),`: When enabled, the profiler computes metrics for view entity types. This may reduce profiler performance.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Compute Table Metrics`}),`: When enabled (default), the profiler computes table-level metrics such as row count and column count.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Compute Column Metrics`}),`: When enabled (default), the profiler computes column-level metrics such as null count, distinct count, and mean.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Use System Table Statistics`}),`: When enabled, the profiler reads table metrics from system catalog tables instead of scanning data. Faster than full scans, but requires up-to-date statistics on the database — for example, run `,_jsx(_components.code,{children:`ANALYZE`}),` on PostgreSQL before profiling. Metrics unavailable in system tables fall back to the default scan method.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Randomized Sample`}),`: When enabled, the profiler randomizes the row order in the sample. Disable for deterministic sampling.`]}),`\n`]}),`\n`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/profiler-advance-configuration.png?fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=25d97b3bf404fff7cb8dbbda05113350`,alt:`Advanced Configuration`,\"data-og-width\":`1752`,width:`1752`,\"data-og-height\":`1426`,height:`1426`,\"data-path\":`public/images/ai-2.0/data-observability/data-profiler/profiler-advance-configuration.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/profiler-advance-configuration.png?w=280\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=a16e7803af51a08889913deb60e644e3 280w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/profiler-advance-configuration.png?w=560\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=0ef79b99558a7a2eccc8d6967ac01823 560w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/profiler-advance-configuration.png?w=840\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=2bf3f0b2ae8f620694281d80456cbf71 840w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/profiler-advance-configuration.png?w=1100\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=09441658e53de8edfab0f36fe844a320 1100w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/profiler-advance-configuration.png?w=1650\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=fcc9505e1b20ae7c4b989608d618c347 1650w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/profiler-advance-configuration.png?w=2500\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=1120dc86b07a5f4bb8f932ce2a29fbff 2500w`}),`\n`,_jsx(Heading,{level:`3`,id:`3-schedule-and-deploy`,children:`3. Schedule and Deploy`}),`\n`,_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Next`}),` to open the scheduling step.`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Select how the profiler runs:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Schedule`}),`: Set a recurring schedule to run the profiler automatically at a fixed interval.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`On Demand`}),`: Run the profiler manually whenever needed.`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Deploy`}),`.`]}),`\n`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/deploy-profiler.png?fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=429a37c2986a004c394d6238bac6e11f`,alt:`Schedule and Deploy Profiler Agent`,\"data-og-width\":`1952`,width:`1952`,\"data-og-height\":`1506`,height:`1506`,\"data-path\":`public/images/ai-2.0/data-observability/data-profiler/deploy-profiler.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/deploy-profiler.png?w=280\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=ed5e6b2fc5450b6bfceb4fe91e649c3c 280w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/deploy-profiler.png?w=560\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=4a64e66bca959cf982b34e448e226d4c 560w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/deploy-profiler.png?w=840\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=ab72d2bc15f5639ebe863a8b376baec1 840w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/deploy-profiler.png?w=1100\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=15edc35847d832095e61eaa86e5260dd 1100w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/deploy-profiler.png?w=1650\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=b3c7a0e77572dee200660bde9b56f32c 1650w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/deploy-profiler.png?w=2500\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=3cc7bfe3274c67142ec2d22f32427653 2500w`}),`\n`,_jsxs(_components.p,{children:[`The Profiler Agent is created and listed under the `,_jsx(_components.strong,{children:`Agents`}),` tab of the service.`]}),`\n`,_jsx(Heading,{level:`2`,id:`adjust-profiler-settings`,children:`Adjust Profiler Settings`}),`\n`,_jsx(_components.p,{children:`After deploying the Profiler Agent, fine-tune profiler behavior at the table or platform level.`}),`\n`,_jsx(Heading,{level:`3`,id:`table-level-settings`,children:`Table-Level Settings`}),`\n`,_jsx(_components.p,{children:`To configure the table-level settings, follow these steps:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`In the table’s details page, navigate to the `,_jsx(_components.strong,{children:`Data Observability`}),` tab and click the `,_jsx(_components.strong,{children:`Settings`}),` icon.`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/profiler-setting.png?fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=e49c78bd5e4a6df27634b45a9622fc38`,alt:`Table profile settings`,\"data-og-width\":`2772`,width:`2772`,\"data-og-height\":`1212`,height:`1212`,\"data-path\":`public/images/ai-2.0/data-observability/data-profiler/profiler-setting.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/profiler-setting.png?w=280\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=7083f3bfbf61d2d136e1700c89205e23 280w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/profiler-setting.png?w=560\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=077f28fe41640898ccc799fb9fa28c4b 560w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/profiler-setting.png?w=840\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=035ee98cdf49d4076057cb41ca374f37 840w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/profiler-setting.png?w=1100\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=e23c85149bc86cfbf15480a55986d0f0 1100w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/profiler-setting.png?w=1650\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=8f3831fea5350af5087b7260dc04480f 1650w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/profiler-setting.png?w=2500\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=e964c2ecc4defb00257b3550ba9cacbb 2500w`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`In the `,_jsx(_components.strong,{children:`Settings`}),` panel, configure the following details:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Profile Sample Type`}),`: The method used to determine how much data the profiler scans for this table.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`Percentage`}),`: Use the slider to set a value between 1% and 100%.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`Row Count`}),`: Enter a fixed number of rows to scan, for example `,_jsx(_components.code,{children:`1,000`}),` or `,_jsx(_components.code,{children:`2,000`}),`. The value must be at least `,_jsx(_components.code,{children:`1`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.strong,{children:`Settings`}),` panel doesn’t accept a profile sample of `,_jsx(_components.code,{children:`0`}),`.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Important`}),`: Profile Sample is not supported for Druid. Use the partitioning or custom query option to limit data scanned.`]})}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sample Data Count`}),`: The number of rows to collect as sample data for this table. Defaults to 50.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Enable Column Profile`}),`: Control which columns the profiler includes for this table.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Exclude`}),`: Select columns to skip during profiling.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Include`}),`: Select specific columns to profile. When columns are selected here, the profiler runs only on those columns. All columns are included by default.`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Enable Partition`}),`: When enabled, the profiler fetches data based on a partition configuration. If `,_jsx(_components.strong,{children:`Profile Sample Type`}),` is also set, it applies to the partitioned data, not the full table.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Column Name`}),`: The column used as the partition field.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Interval Type`}),`:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`TIME-UNIT`}),`: A business timestamp or date column, for example order date or sign-up datetime.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`INGESTION-TIME`}),`: A process timestamp indicating when data was ingested into the table.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`COLUMN-VALUE`}),`: A categorical value representing a chunk of data, for example Product Type A, B, or C.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`INTEGER-RANGE`}),`: A range of integers used as the partition, for example Customer ID between 1 and 10.`]}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`After selecting an `,_jsx(_components.strong,{children:`Interval Type`}),`, configure the following:`]}),`\n`,_jsxs(_components.p,{children:[`For `,_jsx(_components.code,{children:`TIME-UNIT`}),` or `,_jsx(_components.code,{children:`INGESTION-TIME`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`Interval`}),`: The interval value, for example `,_jsx(_components.code,{children:`1`}),` or `,_jsx(_components.code,{children:`2`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`Interval Unit`}),`: `,_jsx(_components.code,{children:`HOUR`}),`, `,_jsx(_components.code,{children:`DAY`}),`, `,_jsx(_components.code,{children:`MONTH`}),`, or `,_jsx(_components.code,{children:`YEAR`}),`.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsxs(_components.em,{children:[`Note: For BigQuery tables partitioned on a timestamp or datetime column, month and year intervals are not supported. Set `,_jsx(_components.strong,{children:`Interval Unit`}),` to `,_jsx(_components.code,{children:`DAY`}),` or `,_jsx(_components.code,{children:`HOUR`}),`.`]})}),`\n`,_jsxs(_components.p,{children:[`For `,_jsx(_components.code,{children:`COLUMN-VALUE`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`Value`}),`: A list of values for the partitioning logic.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`For `,_jsx(_components.code,{children:`INTEGER-RANGE`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`Start Range`}),`: The start of the range (inclusive).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`End Range`}),`: The end of the range (inclusive).`]}),`\n`]}),`\n`]}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`platform-level-settings`,children:`Platform-Level Settings`}),`\n`,_jsx(_components.p,{children:`To configure platform-level settings, follow these steps:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`In the left navigation bar, click the `,_jsx(_components.strong,{children:`Profile`}),` icon and navigate to `,_jsx(_components.strong,{children:`Settings`}),` > `,_jsx(_components.strong,{children:`Preferences`}),` > `,_jsx(_components.strong,{children:`Profiler Configuration`}),`.`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/access-platform-configuration.png?fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=8cf88cccc3d232f3c2577a445e419041`,alt:`Profiler global configuration`,\"data-og-width\":`2988`,width:`2988`,\"data-og-height\":`1592`,height:`1592`,\"data-path\":`public/images/ai-2.0/data-observability/data-profiler/access-platform-configuration.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/access-platform-configuration.png?w=280\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=c1bc99a7904de03280eaf88fd089a48a 280w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/access-platform-configuration.png?w=560\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=a32f5c7531b0b90cb1f9516e73e453e9 560w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/access-platform-configuration.png?w=840\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=c42ed031abc34266ff623e3eb501a480 840w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/access-platform-configuration.png?w=1100\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=f0c98ca508aa0468a7bb0c74ed221e62 1100w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/access-platform-configuration.png?w=1650\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=4c0ad3249ce945ce3b2c419a50fad998 1650w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/access-platform-configuration.png?w=2500\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=d2bc550da1a776f1409eb31c592b4493 2500w`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`On the Profiler Configuration page, configure the following sections:`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Metric Configuration`})}),`\n`,_jsxs(_components.p,{children:[`Each row controls which metrics the profiler computes for a specific data type. Click `,_jsx(_components.strong,{children:`+ Add New Field`}),` to add a configuration for an additional data type.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Data Type`}),`: The column data type to configure, for example `,_jsx(_components.code,{children:`DATE`}),`, `,_jsx(_components.code,{children:`BIGINT`}),`, or `,_jsx(_components.code,{children:`VARCHAR`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Metric Type`}),`: The specific metrics to compute for the data type. When no metrics are selected, the profiler computes all available metrics. When metrics are selected, only those metrics are computed.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Disable`}),`: Toggle on to skip all metric computation for that data type. The profiler ignores any selected metrics when this is enabled.`]}),`\n`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/platform-level-setting.png?fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=45b703e9576ac43b018a66eaf46d8337`,alt:`Profiler platform-level configuration`,\"data-og-width\":`2710`,width:`2710`,\"data-og-height\":`1600`,height:`1600`,\"data-path\":`public/images/ai-2.0/data-observability/data-profiler/platform-level-setting.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/platform-level-setting.png?w=280\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=5aebbeef8ce13e63f1280bc714225ae3 280w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/platform-level-setting.png?w=560\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=4a294d7cf45ef041dae099bfa83c930e 560w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/platform-level-setting.png?w=840\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=99e9cc86281565238ef063130150b747 840w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/platform-level-setting.png?w=1100\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=4dd0c08cb9232ade6686c4ead862c710 1100w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/platform-level-setting.png?w=1650\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=5e0a48acd45f7d5baae9447e63d153de 1650w, https://mintcdn.com/collatedocs/kIcf12aq0fGgWkOd/public/images/ai-2.0/data-observability/data-profiler/platform-level-setting.png?w=2500\u0026fit=max\u0026auto=format\u0026n=kIcf12aq0fGgWkOd\u0026q=85\u0026s=b832e1632c16fcd204390dce5cf19511 2500w`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Sample Data Ingestion Configuration`})}),`\n`,_jsx(_components.p,{children:`Controls whether Collate stores or reads sample data during profiling. These settings override source-level configuration.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Enable Storing of Sample Data`}),`: When enabled (default), Collate stores sample data collected during profiling runs.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Enable Reading of Sample Data`}),`: When enabled (default), Collate reads sample data during profiling. The data is temporarily loaded into Collate’s infrastructure for processing but not stored. When using the Hybrid Runner, this processing happens within your own environment and sample data does not leave your infrastructure. If reading is disabled but storing is enabled, reading is automatically enabled.`]}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`yaml-configuration`,children:`YAML Configuration`}),`\n`,_jsxs(_components.p,{children:[`The profiler workflow can also be triggered using a YAML configuration file via the Airflow SDK or the CLI. The `,_jsx(_components.code,{children:`serviceConnection`}),` config is connector-specific. See the `,_jsx(_components.a,{href:`/ai-2-0/connectors`,children:`connectors`}),` section for details. The `,_jsx(_components.code,{children:`sourceConfig`}),` for the profiler is similar across all connectors.`]}),`\n`,_jsx(_components.p,{children:`To run the profiler from a YAML file, follow these steps:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Create a YAML configuration file with the following structure:`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`sourceConfig`}),` block supports these parameters:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`computeTableMetrics`})}),`: Turn off to skip table-level metric computation.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`computeColumnMetrics`})}),`: Turn off to skip column-level metric computation. Turn both this and `,_jsx(_components.code,{children:`computeTableMetrics`}),` off when you only want to ingest sample data.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`profileSampleConfig`})}),`: How much data the profiler and tests run on. `,_jsx(_components.code,{children:`sampleConfigType`}),` is either `,_jsx(_components.code,{children:`DYNAMIC`}),` (default, resolves the sample size at runtime from the table’s row count) or `,_jsx(_components.code,{children:`STATIC`}),` (a fixed size you set yourself); `,_jsx(_components.code,{children:`config`}),` holds the settings for the type you chose.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`threadCount`})}),`: Number of threads used for metric computation.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`timeoutSeconds`})}),`: How long a profiling job waits before skipping to the next table.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`databaseFilterPattern`})}),`: Regex to include or exclude databases by name.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`schemaFilterPattern`})}),`: Regex to include or exclude schemas by name.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`tableFilterPattern`})}),`: Regex to include or exclude tables by name.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`processor`}),` block uses `,_jsx(_components.code,{children:`type: orm-profiler`}),`. Use `,_jsx(_components.code,{children:`tableConfig`}),` to set profile sample, column filters, and partition config at the table level.`]}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`sink`}),` block must use `,_jsx(_components.code,{children:`type: metadata-rest`}),` to send results to Collate.`]}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`workflowConfig`}),` block requires an `,_jsx(_components.code,{children:`openMetadataServerConfig`}),` with the host and auth provider for your Collate installation.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`75`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`75`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`source`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` type`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\u003cconnectorType (e.g. bigquery, redshift, etc.)>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` serviceName`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\u003cserviceName (same as metadata ingestion service name)>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` sourceConfig`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` config`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` type`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Profiler`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` computeTableMetrics`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` computeColumnMetrics`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# profileSampleConfig:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# sampleConfigType: DYNAMIC`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# config:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# smartSampling: true`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# threadCount: 5`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# timeoutSeconds: 43200`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# databaseFilterPattern:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # includes:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # - database1`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # - database2`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # excludes:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # - database3`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # - database4`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# schemaFilterPattern:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # includes:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # - schema1`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # - schema2`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # excludes:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # - schema3`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # - schema4`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# tableFilterPattern:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # includes:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # - table1`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # - table2`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # excludes:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # - table3`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # - table4`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`processor`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` type`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`orm-profiler`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` config`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {} `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Remove braces if adding properties`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # tableConfig:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # - fullyQualifiedName: \u003ctable fqn>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # profileSampleConfig:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # sampleConfigType: STATIC # omit entirely to inherit dynamic sampling`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # config:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # profileSample: \u003cnumber between 0 and 99>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # columnConfig:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # excludeColumns:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # - \u003ccolumn name>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # includeColumns:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # - columnName: \u003ccolumn name>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # - metrics:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # - MEAN`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # - MEDIAN`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # - ...`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # partitionConfig:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # enablePartitioning: \u003cset to true to use partitioning>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # partitionColumnName: \u003cpartition column name>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # partitionIntervalType: \u003cTIME-UNIT, INTEGER-RANGE, INGESTION-TIME, COLUMN-VALUE>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # ----'TIME-UNIT' or 'INGESTION-TIME'-------`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # partitionInterval: \u003cpartition interval>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # partitionIntervalUnit: \u003cYEAR, MONTH, DAY, HOUR>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # ------------'INTEGER-RANGE'---------------`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # partitionIntegerRangeStart: \u003cinteger>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # partitionIntegerRangeEnd: \u003cinteger>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # -----------'COLUMN-VALUE'----------------`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # partitionValues:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # - \u003cvalue>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # - \u003cvalue>`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`sink`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` type`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`metadata-rest`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` config`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`workflowConfig`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # loggerLevel: DEBUG # DEBUG, INFO, WARN or ERROR`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` openMetadataServerConfig`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` hostPort`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\u003cCollate host and port>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` authProvider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\u003cCollate auth provider>`})]}),`\n`]})})}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Run the profiler using the CLI:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`metadata`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` profile`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -c`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`path-to-yam`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`l`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Use `,_jsx(_components.code,{children:`profile`}),` instead of `,_jsx(_components.code,{children:`ingest`}),` to trigger the Profiler workflow.`]}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`profiler-best-practices`,children:`Profiler Best Practices`}),`\n`,_jsx(_components.p,{children:`The profiler runs queries against your database, which can incur costs on engines like Google BigQuery and Snowflake. Execution time varies based on engine performance, table size, and column count. Keep these practices in mind when configuring profiler workflows.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Profile only what you need`}),`: Profiling every table in your data platform is rarely necessary. Focus on tables that are actively used by analysts, data scientists, or downstream pipelines. Use database, schema, and table filter patterns to narrow down which tables the profiler targets.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Use sampling and partitioning`}),`: Set a sample percentage or row count to limit how much data the profiler scans per table. For partitioned tables, configure a partition filter so the profiler only scans the relevant partition. Both approaches reduce query cost and execution time.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Exclude unnecessary columns and metrics`}),`: By default, the profiler computes all metrics for all columns. Use the column profile settings to exclude columns such as `,_jsx(_components.code,{children:`id`}),` fields, or limit the metric set to only what’s needed. This reduces computation time and cost.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Distribute load across multiple workflows`}),`: For large numbers of tables, set up multiple Profiler Agents with different filter patterns to distribute the load. Monitor instance CPU and memory when running several workflows simultaneously to avoid resource contention.`]}),`\n`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Profiler Workflow | Profiling Workflow","description":"Use profiler workflows to extract row stats, distribution, null percentages, and data health.","slug":"/ai-2-0/how-to-guides/data-quality-observability/profiler/profiler-workflow","sidebarTitle":"Profiler Workflow","href":"/ai-2-0/how-to-guides/data-quality-observability/profiler/profiler-workflow"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Profiler Workflow","slug":"profiler-workflow","depth":1,"children":[]},{"title":"Configure a Profiler Agent","slug":"configure-a-profiler-agent","depth":2,"children":[{"title":"1. Add a Profiler Agent","slug":"1-add-a-profiler-agent","depth":3,"children":[]},{"title":"2. Configure the Profiler Agent","slug":"2-configure-the-profiler-agent","depth":3,"children":[]},{"title":"Agent Setup","slug":"agent-setup","depth":4,"children":[]},{"title":"Filter Patterns","slug":"filter-patterns","depth":4,"children":[]},{"title":"Scope \u0026 Behaviour","slug":"scope-\u0026-behaviour","depth":4,"children":[]},{"title":"Advanced Configuration","slug":"advanced-configuration","depth":4,"children":[]},{"title":"3. Schedule and Deploy","slug":"3-schedule-and-deploy","depth":3,"children":[]}]},{"title":"Adjust Profiler Settings","slug":"adjust-profiler-settings","depth":2,"children":[{"title":"Table-Level Settings","slug":"table-level-settings","depth":3,"children":[]},{"title":"Platform-Level Settings","slug":"platform-level-settings","depth":3,"children":[]}]},{"title":"YAML Configuration","slug":"yaml-configuration","depth":2,"children":[]},{"title":"Profiler Best Practices","slug":"profiler-best-practices","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/collatedocs/193c43da98baa789/loader.js"],"subdomain":"collatedocs","siteName":"Collate Documentation","title":"Profiler Workflow | Profiling Workflow - Collate Documentation","navMaps":{"firstHrefInVersion":{"AI 2.0":{"href":"/ai-2-0/how-to-guides/data-quality-observability/profiler/profiler-workflow","matchLevel":0},"Classic":{"href":"/how-to-guides/data-quality-observability/profiler/profiler-workflow","matchLevel":1}},"firstHrefInLanguage":{}},"lastModified":"2026-10-26T10:49:48.358Z","originalFileLocation":"ai-2-0/how-to-guides/data-quality-observability/profiler/profiler-workflow.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"light\";if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Use profiler workflows to extract row stats, distribution, null percentages, and data health.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Collate Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"index,follow\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/collatedocs/Wy3ST-458y16Xhek/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/collatedocs/Wy3ST-458y16Xhek/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/collatedocs/Wy3ST-458y16Xhek/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/collatedocs/Wy3ST-458y16Xhek/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/collatedocs/Wy3ST-458y16Xhek/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/collatedocs/Wy3ST-458y16Xhek/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/collatedocs/Wy3ST-458y16Xhek/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/collatedocs/Wy3ST-458y16Xhek/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/collatedocs/Wy3ST-458y16Xhek/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Profiler Workflow | Profiling Workflow - Collate Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Use profiler workflows to extract row stats, distribution, null percentages, and data health.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Collate Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.getcollate.io/ai-2-0/how-to-guides/data-quality-observability/profiler/profiler-workflow\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://collatedocs.mintlify.site/_mintlify/api/og/v2?division=Data+Profiler\u0026amp;title=Profiler+Workflow+%7C+Profiling+Workflow\u0026amp;description=Use+profiler+workflows+to+extract+row+stats%2C+distribution%2C+null+percentages%2C+and+data+health.\u0026amp;theme=92c37872cb6ce8ffd4c333e7\u0026amp;signature=14e429e2e5b5841a5296affae3d73e08313bcd41524b8a03c40b27d4f037c90e\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Profiler Workflow | Profiling Workflow - Collate Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Use profiler workflows to extract row stats, distribution, null percentages, and data health.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://collatedocs.mintlify.site/_mintlify/api/og/v2?division=Data+Profiler\u0026amp;title=Profiler+Workflow+%7C+Profiling+Workflow\u0026amp;description=Use+profiler+workflows+to+extract+row+stats%2C+distribution%2C+null+percentages%2C+and+data+health.\u0026amp;theme=92c37872cb6ce8ffd4c333e7\u0026amp;signature=14e429e2e5b5841a5296affae3d73e08313bcd41524b8a03c40b27d4f037c90e\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/collatedocs/Wy3ST-458y16Xhek/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Collate Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1570EF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.getcollate.io/ai-2-0/how-to-guides/data-quality-observability/profiler/profiler-workflow\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/ai-2-0/how-to-guides/data-quality-observability/profiler/profiler-workflow.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.getcollate.io/#organization\",\"name\":\"Collate Documentation\",\"url\":\"https://docs.getcollate.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/collatedocs/yvgGxaeRR5RwtQo6/public/images/icons/collate-logo.svg?fit=max\u0026auto=format\u0026n=yvgGxaeRR5RwtQo6\u0026q=85\u0026s=59d7983952a91cd53138369f2e21a5ac\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.getcollate.io#website\",\"name\":\"Collate Documentation\",\"url\":\"https://docs.getcollate.io\",\"publisher\":{\"@id\":\"https://docs.getcollate.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.getcollate.io/ai-2-0/how-to-guides/data-quality-observability/profiler/profiler-workflow#webpage\",\"url\":\"https://docs.getcollate.io/ai-2-0/how-to-guides/data-quality-observability/profiler/profiler-workflow\",\"name\":\"Profiler Workflow | Profiling Workflow\",\"description\":\"Use profiler workflows to extract row stats, distribution, null percentages, and data health.\",\"dateModified\":\"2026-10-26T10:49:48.358Z\",\"isPartOf\":{\"@id\":\"https://docs.getcollate.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.getcollate.io/ai-2-0/how-to-guides/data-quality-observability/profiler/profiler-workflow#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.getcollate.io/ai-2-0/how-to-guides/data-quality-observability/profiler/profiler-workflow#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Data Quality \u0026 Observability\",\"item\":\"https://docs.getcollate.io/ai-2-0/how-to-guides/data-quality-observability/index\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Data Profiler\",\"item\":\"https://docs.getcollate.io/ai-2-0/how-to-guides/data-quality-observability/profiler/index\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Profiler Workflow | Profiling Workflow\",\"item\":\"https://docs.getcollate.io/ai-2-0/how-to-guides/data-quality-observability/profiler/profiler-workflow\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.getcollate.io/ai-2-0/how-to-guides/data-quality-observability/profiler/profiler-workflow#article\",\"headline\":\"Profiler Workflow | Profiling Workflow\",\"name\":\"Profiler Workflow | Profiling Workflow\",\"description\":\"Use profiler workflows to extract row stats, distribution, null percentages, and data health.\",\"url\":\"https://docs.getcollate.io/ai-2-0/how-to-guides/data-quality-observability/profiler/profiler-workflow\",\"mainEntityOfPage\":{\"@id\":\"https://docs.getcollate.io/ai-2-0/how-to-guides/data-quality-observability/profiler/profiler-workflow#webpage\"},\"dateModified\":\"2026-10-26T10:49:48.358Z\",\"publisher\":{\"@id\":\"https://docs.getcollate.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.getcollate.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Collate Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Collate Documentation","nav":{"global":null,"versions":[{"version":"AI 2.0","default":true,"tabs":[{"tab":"Home","pages":[{"title":"Home","href":""}]},{"tab":"Release 2.0","pages":[{"title":"Release 2.0","href":"/ai-2-0/release-2.0"}]},{"tab":"Get Started","pages":[{"title":"Get Started","href":"/ai-2-0/getting-started"}]},{"tab":"Connectors","pages":[{"title":"Connectors","href":"/ai-2-0/connectors"}]},{"tab":"Products","pages":[{"title":"Products","href":"/ai-2-0/product-guides"}]},{"tab":"Collate AI","pages":[{"title":"Collate AI","href":"/ai-2-0/collate-ai"}]},{"tab":"How-to Guides","pages":[{"title":"How-to Guides","href":"/ai-2-0/how-to-guides"}]},{"tab":"Admin","pages":[{"title":"Admin","href":"/ai-2-0/admin-guide"}]},{"tab":"SDKs \u0026 APIs","pages":[{"title":"SDKs \u0026 APIs","href":"/ai-2-0/developer-guide/api-reference"}]},{"tab":"SQL Studio","pages":[{"title":"SQL Studio","href":"/ai-2-0/how-to-guides/sql-studio"}]},{"tab":"Data Insights","pages":[{"title":"Data Insights","href":"/ai-2-0/how-to-guides/data-insights"}]},{"tab":"Data Discovery","pages":[{"title":"Data Discovery","href":"/ai-2-0/how-to-guides/data-discovery"}]},{"tab":"Data Collaboration","pages":[{"title":"Data Collaboration","href":"/ai-2-0/how-to-guides/data-collaboration"}]},{"tab":"Data Quality \u0026 Observability","groups":[{"group":"Data Quality \u0026 Observability","pages":[{"title":"Data Quality Observability Guide","sidebarTitle":"Overview","href":"/ai-2-0/how-to-guides/data-quality-observability"},{"group":"Data Quality","pages":[{"title":"Data Quality | Quality Management Guide","sidebarTitle":"Overview","href":"/ai-2-0/how-to-guides/data-quality-observability/quality/index"},{"title":"Data Quality Tab | Quality Interface","sidebarTitle":"Data Quality Tab","href":"/ai-2-0/how-to-guides/data-quality-observability/quality/tab"},{"title":"Data Observability Overview | Quality Interface","sidebarTitle":"Data Quality Overview Tab","href":"/ai-2-0/how-to-guides/data-quality-observability/quality/overview"},{"title":"Create Quality Test Cases","sidebarTitle":"Create Quality Test Cases","href":"/ai-2-0/how-to-guides/data-quality-observability/quality/test"},{"title":"Create Test Suites","sidebarTitle":"Create Test Suites","href":"/ai-2-0/how-to-guides/data-quality-observability/quality/adding-test-suites"},{"title":"Failure Thresholds | How Data Quality Tests Tolerate Failures","sidebarTitle":"Failure Thresholds","href":"/ai-2-0/how-to-guides/data-quality-observability/quality/failure-thresholds"},{"title":"How to Visualize Test Results","sidebarTitle":"Visualize Test Results","href":"/ai-2-0/how-to-guides/data-quality-observability/quality/visualize"},{"title":"Configure Data Quality","sidebarTitle":"Configure Data Quality","href":"/ai-2-0/how-to-guides/data-quality-observability/quality/configure"},{"title":"Tests - YAML Configuration | Quality Configuration Guide","sidebarTitle":"Tests - YAML Configuration","href":"/ai-2-0/how-to-guides/data-quality-observability/quality/tests-yaml"},{"title":"Tests - UI Configuration | Quality Configuration Guide","sidebarTitle":"Tests - UI Configuration","href":"/ai-2-0/how-to-guides/data-quality-observability/quality/tests-ui"},{"title":"Custom Tests","sidebarTitle":"Custom Tests","href":"/ai-2-0/how-to-guides/data-quality-observability/quality/custom-tests"},{"title":"Test Library | Custom SQL-Based Data Quality Tests","sidebarTitle":"Test Library","href":"/ai-2-0/how-to-guides/data-quality-observability/quality/test-library"},{"title":"Dimensional Validation | Data Quality Testing by Dimension","sidebarTitle":"Dimensional Validation","href":"/ai-2-0/how-to-guides/data-quality-observability/quality/dimensional-validation"},{"group":"Data Quality as Code","pages":[{"title":"Data Quality as Code","sidebarTitle":"Overview","href":"/ai-2-0/how-to-guides/data-quality-observability/quality/data-quality-as-code/index"},{"title":"Getting Started with Data Quality as Code","sidebarTitle":"Getting Started with Data Quality as Code","href":"/ai-2-0/how-to-guides/data-quality-observability/quality/data-quality-as-code/getting-started"},{"title":"TestRunner","sidebarTitle":"Test Runner","href":"/ai-2-0/how-to-guides/data-quality-observability/quality/data-quality-as-code/test-runner"},{"title":"DataFrame Validation","sidebarTitle":"DataFrame Validation","href":"/ai-2-0/how-to-guides/data-quality-observability/quality/data-quality-as-code/dataframe-validation"},{"title":"Test Definitions Reference","sidebarTitle":"Test Definitions Reference","href":"/ai-2-0/how-to-guides/data-quality-observability/quality/data-quality-as-code/test-definitions"},{"title":"Advanced Usage","sidebarTitle":"Advanced Usage","href":"/ai-2-0/how-to-guides/data-quality-observability/quality/data-quality-as-code/advanced-usage"}]},{"group":"Import/Export Test Cases","pages":[{"title":"Bulk Import, Export, and Edit Test Cases","sidebarTitle":"Overview","href":"/ai-2-0/how-to-guides/data-quality-observability/quality/import-export-test-cases"},{"title":"Bulk Export Test Cases","sidebarTitle":"Bulk Export Test Cases","href":"/ai-2-0/how-to-guides/data-quality-observability/quality/import-export-test-cases/export"},{"title":"Bulk Import Test Cases","sidebarTitle":"Bulk Import Test Cases","href":"/ai-2-0/how-to-guides/data-quality-observability/quality/import-export-test-cases/import"},{"title":"Bulk Edit Test Cases","sidebarTitle":"Bulk Edit Test Cases","href":"/ai-2-0/how-to-guides/data-quality-observability/quality/import-export-test-cases/edit"}]}]},{"group":"Data Profiler","pages":[{"title":"Data Profiler | Data Profiling Guide","sidebarTitle":"Overview","href":"/ai-2-0/how-to-guides/data-quality-observability/profiler/index"},{"title":"Profiler Tab | Data Profiling Interface","description":"Use the profiler tab to configure, view, and manage profiling metrics including null counts, uniqueness, and stats.","sidebarTitle":"Profiler Tab","href":"/ai-2-0/how-to-guides/data-quality-observability/profiler/tab"},{"title":"Profiler Workflow | Profiling Workflow","sidebarTitle":"Profiler Workflow","href":"/ai-2-0/how-to-guides/data-quality-observability/profiler/profiler-workflow"},{"title":"Metrics | Profiler","description":"Monitor profiling metrics such as completeness, distinct counts, min/max, and type inference to detect data quality issues.","sidebarTitle":"Metrics","href":"/ai-2-0/how-to-guides/data-quality-observability/profiler/metrics"},{"title":"Custom Metrics","sidebarTitle":"Custom Metrics","href":"/ai-2-0/how-to-guides/data-quality-observability/profiler/custom-metrics"},{"title":"Auto PII Tagging","sidebarTitle":"Auto PII Tagging","href":"/ai-2-0/how-to-guides/data-quality-observability/profiler/auto-pii-tagging"},{"group":"Spark Engine","pages":[{"title":"Spark Engine Overview | Distributed Profiling","sidebarTitle":"Overview","href":"/ai-2-0/how-to-guides/data-quality-observability/profiler/spark-engine/index"},{"title":"Spark Engine Prerequisites | Spark Profiling Setup","sidebarTitle":"Prerequisites","href":"/ai-2-0/how-to-guides/data-quality-observability/profiler/spark-engine/prerequisites"},{"title":"Spark Engine Partitioning Requirements | Spark Profiling","sidebarTitle":"Partitioning","href":"/ai-2-0/how-to-guides/data-quality-observability/profiler/spark-engine/partitioning"},{"group":"Configuration","pages":[{"title":"Spark Engine Configuration | Spark Profiling Setup","sidebarTitle":"Overview","href":"/ai-2-0/how-to-guides/data-quality-observability/profiler/spark-engine/configuration/index"},{"title":"Spark Engine UI Configuration | Spark Profiling","sidebarTitle":"UI Configuration","href":"/ai-2-0/how-to-guides/data-quality-observability/profiler/spark-engine/configuration/ui-configuration"},{"title":"Spark Engine External Configuration | Spark Profiling","sidebarTitle":"External Configuration","href":"/ai-2-0/how-to-guides/data-quality-observability/profiler/spark-engine/configuration/external-configuration"}]}]}]},{"group":"Alerts \u0026 Notifications","pages":[{"title":"Alerts \u0026 Notifications","sidebarTitle":"Overview","href":"/ai-2-0/how-to-guides/data-quality-observability/alerts-notifications/index"},{"title":"Data Observability Alerts","sidebarTitle":"Data Observability Alerts","href":"/ai-2-0/how-to-guides/data-quality-observability/alerts-notifications/data-observability-alerts"},{"title":"System \u0026 Governance Notifications","sidebarTitle":"System \u0026 Governance Notifications","href":"/ai-2-0/how-to-guides/data-quality-observability/alerts-notifications/system-governance-notifications"},{"title":"Email Alerts Configuration","sidebarTitle":"Email Alerts Configuration","href":"/ai-2-0/how-to-guides/data-quality-observability/alerts-notifications/email-alerts-configuration"},{"title":"Slack Alerts Configuration","sidebarTitle":"Slack Alerts Configuration","href":"/ai-2-0/how-to-guides/data-quality-observability/alerts-notifications/slack-alerts-configuration"},{"title":"Microsoft Teams Alerts Configuration","sidebarTitle":"Microsoft Teams Alerts Configuration","href":"/ai-2-0/how-to-guides/data-quality-observability/alerts-notifications/microsoft-teams-alerts-configuration"},{"title":"Google Chat Alerts Configuration","sidebarTitle":"Google Chat Alerts Configuration","href":"/ai-2-0/how-to-guides/data-quality-observability/alerts-notifications/google-chat-alerts-configuration"},{"title":"Generic Webhook Alert Configuration","sidebarTitle":"Generic Webhook Alert Configuration","href":"/ai-2-0/how-to-guides/data-quality-observability/alerts-notifications/generic-webhook-alerts-configuration"},{"title":"Alert Behavior Reference | Collate Alerts and Notifications","sidebarTitle":"Alert Behavior Reference","href":"/ai-2-0/how-to-guides/data-quality-observability/alerts-notifications/alert-behavior-reference"},{"title":"Webhook Payloads and Delivery | Collate Alerts and Notifications","sidebarTitle":"Webhook Payloads and Delivery","href":"/ai-2-0/how-to-guides/data-quality-observability/alerts-notifications/webhook-payloads-and-delivery"},{"title":"Notify Downstream | Collate","sidebarTitle":"Notify Downstream","href":"/ai-2-0/how-to-guides/data-quality-observability/alerts-notifications/notify-downstream"},{"group":"Notification Templates","pages":[{"title":"Notification Templates","sidebarTitle":"Overview","href":"/ai-2-0/how-to-guides/data-quality-observability/alerts-notifications/notification-templates/index"},{"title":"Concepts and Overview","sidebarTitle":"Concepts and Overview","href":"/ai-2-0/how-to-guides/data-quality-observability/alerts-notifications/notification-templates/concepts-and-overview"},{"title":"Create and Manage Templates","sidebarTitle":"Create and Manage Templates","href":"/ai-2-0/how-to-guides/data-quality-observability/alerts-notifications/notification-templates/create-and-manage-templates"},{"title":"Handlebars Templating Guide","sidebarTitle":"Handlebars Templating Guide","href":"/ai-2-0/how-to-guides/data-quality-observability/alerts-notifications/notification-templates/handlebars-templating-guide"},{"title":"Template Context Reference","sidebarTitle":"Template Context Reference","href":"/ai-2-0/how-to-guides/data-quality-observability/alerts-notifications/notification-templates/template-context-reference"},{"title":"Custom Helpers Reference","sidebarTitle":"Custom Helpers Reference","href":"/ai-2-0/how-to-guides/data-quality-observability/alerts-notifications/notification-templates/custom-helpers-reference"},{"title":"Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-2-0/how-to-guides/data-quality-observability/alerts-notifications/notification-templates/troubleshooting"}]}]},{"group":"Incident Manager","pages":[{"title":"Incident Manager | Data Quality Management","sidebarTitle":"Overview","href":"/ai-2-0/how-to-guides/data-quality-observability/incident-manager/index"},{"title":"Managing Incidents","sidebarTitle":"Managing Incidents","href":"/ai-2-0/how-to-guides/data-quality-observability/incident-manager/workflow"},{"title":"Root Cause Analysis | Incident Management","sidebarTitle":"Root Cause Analysis","href":"/ai-2-0/how-to-guides/data-quality-observability/incident-manager/root-cause-analysis"}]},{"title":"Pipeline Observability","sidebarTitle":"Pipeline Observability","href":"/ai-2-0/how-to-guides/data-quality-observability/pipeline-observability/index"},{"group":"Anomaly Detection","pages":[{"title":"Anomaly Detection in Collate | Automated Data Quality Alerts","sidebarTitle":"Overview","href":"/ai-2-0/how-to-guides/data-quality-observability/anomaly-detection/index"},{"title":"Set Up Anomaly Detection for Data Quality","sidebarTitle":"Set Up Anomaly Detection","href":"/ai-2-0/how-to-guides/data-quality-observability/anomaly-detection/setting-up"}]}]}]},{"tab":"Data Lineage","pages":[{"title":"Data Lineage","href":"/ai-2-0/how-to-guides/data-lineage"}]},{"tab":"Data Governance","pages":[{"title":"Data Governance","href":"/ai-2-0/how-to-guides/data-governance"}]},{"tab":"Data Marketplace","pages":[{"title":"Data Marketplace","href":"/ai-2-0/how-to-guides/data-marketplace"}]},{"tab":"Data Contracts","pages":[{"title":"Data Contracts","href":"/ai-2-0/how-to-guides/data-contracts"}]},{"tab":"Guide for Data Users","pages":[{"title":"Guide for Data Users","href":"/ai-2-0/how-to-guides/guide-for-data-users"}]},{"tab":"Customer Support","pages":[{"title":"Customer Support","href":"/ai-2-0/how-to-guides/collate-customer-support"}]},{"tab":"SSO","pages":[{"title":"SSO","href":"/ai-2-0/how-to-guides/sso"}]},{"tab":"MCP Server","pages":[{"title":"MCP Server","href":"/ai-2-0/how-to-guides/mcp"}]},{"tab":"Deployment","pages":[{"title":"Deployment","href":"/ai-2-0/how-to-guides/deployment"}]}]},{"version":"Classic","pages":[{"title":"Classic","href":"/how-to-guides/data-quality-observability/profiler/profiler-workflow"}]}]},"basePath":"","title":"Profiler Workflow | Profiling Workflow - Collate Documentation","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-DMoL6lHz.js","lightbox-handle-r17bVUz3.js"]}