Coming from…
Coming from Power Query
In Power Query a query is a list of applied steps. In Daedalus each of those steps is a node
on a canvas, and you see the whole chain at once. Click any node to see its data at that
point, the way you click an applied step.
How Power Query ideas map
| In Power Query | In Daedalus |
| Query | A chain of nodes on the canvas. Several queries live side by side in one workflow. |
| Applied Steps | Each step is its own node. Click one to preview its output in the dock under the canvas. |
| Ribbon commands (Home, Transform, Add Column) | Nodes. Right-click the canvas, or press ⌘K, and type the command name you know. |
| Query Settings, step settings | The Attributes panel on the right shows the selected node's settings. |
| Reference a query | Draw a second wire from the same node. Both branches read the same output. |
| Merge Queries, Append Queries | The Join and Union nodes. |
| Parameters | A Constant Table wired into a node's parameter input. |
| M and the Advanced Editor | No M. Add Column takes SQL formulas, DuckDB Query takes a full SQL query, and Code Gen has AI write Python for you. |
| Error values | No error values. A value that won't convert becomes empty (NULL), and you can filter or fill it. |
| Close & Load, Refresh | Add a writer node at the end (CSV, Excel, Parquet, a database), then Run. Cloud runs replace a scheduled refresh. |
Not in Daedalus yet
Most gaps are connectors: Daedalus reads PostgreSQL, MySQL, SQLite and Snowflake databases, Salesforce, S3 storage, files, web pages and web APIs, but not SQL Server, Oracle or SharePoint yet. When you type one of these names, the menu shows the hint below instead of a node.
| Power Query name | What to do instead |
| Remove Errors, Table.RemoveRowsWithErrors | No error values; Cast Types/Parse null bad values, then Filter |
| R script, Run R script | R isn't supported; describe the step in a Code Gen node (Python) |
| SQL Server database, Sql.Database | SQL Server isn't supported yet; DB Reader reads PostgreSQL/MySQL |
| Oracle database | Oracle isn't supported yet; DB Reader reads PostgreSQL/MySQL |
| Google BigQuery, IBM Db2 database, SAP HANA database | Not supported yet; DB Reader reads PostgreSQL/MySQL |
| ODBC | No ODBC connector; use DB Reader (PostgreSQL/MySQL) or SQLite Reader |
| SharePoint folder, SharePoint.Files | Not supported; sync the folder locally and read the files |
| SharePoint Online list | Not supported; export the list to CSV/Excel first |
| Dataverse | Not supported; export the table to CSV/Excel first |
| Analysis Services | Not supported; no cube/semantic-model connector |
| PDF, Pdf.Tables | No PDF table reader yet; extract tables in a Code Gen node |
| Reverse Rows | Add Row Number, then Sort on it descending |
| Remove Alternate Rows | Add Row Number, then Filter on the number (e.g. MOD = 0) |
| Move, Table.ReorderColumns | Reorder columns with a DuckDB Query SELECT listing them in order |
| Use Headers as First Row | Not supported yet; Transpose twice or build rows in DuckDB Query |
Tips for Power Query users
- Type the ribbon command. Merge Queries finds Join, Append Queries finds Union and Index Column finds Add Row Number, each with a Power Query: chip in the add-node menu and the ⌘K palette.
- Branch instead of duplicating. Where you would reference a query, draw a second wire out of the same node.
- Plan for NULL, not errors. Cast Types and Parse turn values that won't convert into NULL, so follow them with Filter or Fill Missing.
- Parameters are tables. Put the value in a Constant Table and wire it into Add Column or Filter as a parameter.
- Nothing is loaded until you write it. Close & Load becomes a writer node at the end of the chain, such as Write Excel or Write CSV.