Status
In private development. Early access by invitation. The names, options and formats on this page can change before the first release.
Platforms
Account and data
Also on this site
Platforms
Account and data
Also on this site
Status
In private development. Early access by invitation. The names, options and formats on this page can change before the first release.
A platform profile is a structured description of one data platform. When you connect a workspace, Emolysis loads its profile, and the agent uses it on every request. That is how the agent writes Databricks code for Databricks without guessing: platform awareness is data the agent reads, not instructions hidden in a prompt.
Every platform uses the same fields. The field names can change before the first release.
| Field | What it holds |
|---|---|
platform | The platform id: databricks, snowflake or fabric |
display_name | The platform's name as shown to you |
profile_version | The version of this profile |
dialect | The SQL dialect generated code is translated into |
languages | Languages the platform runs, such as SQL and Python |
table_format | Delta, Iceberg or the platform's native format |
merge_idiom | How the platform merges changes into a table |
incremental_primitives | The platform's tools for incremental loads |
deployment_unit | What a deploy produces, such as an Asset Bundle |
compute_apis | How work is submitted: jobs, warehouses, sessions |
auth | How you sign in to the platform |
known_traps | Mistakes that are easy to make on this platform |
local_sampling | How samples are read into DuckDB |
Status: Databricks comes first. The Snowflake and Microsoft Fabric profiles are drafts, their connectors are tested only against simulated services, and none of the three platforms' connectors has run on a real account yet.
| Field | Databricks | Snowflake | Microsoft Fabric |
|---|---|---|---|
| Dialect | Databricks SQL and PySpark | Snowflake SQL and Snowpark | Spark SQL and PySpark; T-SQL in warehouses |
| Table format | Delta, governed by Unity Catalog | Native or Iceberg tables | Delta in OneLake |
| Merge idiom | MERGE INTO, with Delta Change Data Feed where it is on | MERGE fed by streams; dynamic tables | MERGE on lakehouse Delta tables |
| Incremental tools | Auto Loader; Lakeflow Declarative Pipelines | Streams and tasks; dynamic tables | Notebooks on a pipeline schedule; Dataflow Gen2 |
| Deployment unit | Databricks Asset Bundle (databricks.yml) | SQL scripts, tasks, streams and dynamic tables | A PySpark notebook in a workspace |
| Compute | Jobs, SQL warehouses | Virtual warehouses | Spark job definitions and sessions; SQL analytics endpoint |
| Sign-in | OAuth, or a personal access token | Key-pair or a programmatic access token | Microsoft Entra ID |
| Known traps | Serverless versus classic compute; Unity Catalog grants | Uppercase identifier folding; warehouse auto-suspend | Item definitions and creation order when deploying through the API |
| Local sampling | A SQL warehouse or Unity Catalog volumes | The Snowflake connector, or a stage as Parquet | Lakehouse tables through Spark |
Each platform has its own page: Databricks, Snowflake and Microsoft Fabric. PostgreSQL is in development as a source and SQL Server is planned as one; both use the same profile format. See Sources.
platform and profile_version. A file written for one platform cannot be deployed to another without an explicit translation step. See Deploying.On Databricks, code that works on classic compute can behave differently on serverless compute, and Unity Catalog permissions decide what a job can read. On Snowflake, unquoted identifiers fold to uppercase, and warehouse auto-suspend affects schedules and cost. On Microsoft Fabric, deploying workspace items through the API needs care with item definitions and order. The profile names these so the agent and the lint rules can avoid them.
This is why a profile is data rather than a prompt: a known trap is caught by the platform's lint rules on every pipeline, the same way every time.
Profiles change as platforms change. A new profile version can add traps or tools; your existing files keep the version they were written with until you update them. The profile_version tag on each file says which one that is.
Every platform uses the same profile fields, which is why adding a platform does not change how the rest of Emolysis works. Sources such as SQL Server and PostgreSQL use the same format.
Platform profile, Unity Catalog and OneLake in the glossary. For the connect flow on the first platform, see Connecting Databricks.
Previous
Golden tests on DuckDB
Next
Connecting Databricks