docs/content/product/data-modeling/visual-modeler.mdx
Visual Modeler editor provides the visual, no-code experience for building and enhancing the data model of your semantic layer from within your web browser.
Unlike the code-first data model editor, Visual Modeler allows non-technical users to participate in data modeling without writing code. However, it does not support some advanced data modeling features listed as known limitations.
<InfoBox>Available on Premium and above plans.
</InfoBox> <InfoBox>Visual Modeler extends and replaces the Data Graph feature.
</InfoBox> <Screenshot src="https://ucarecdn.com/8c6c183c-6cf5-4ee1-ab67-36e37b62a12f/"/>Visual Modeler integrates with the development mode, environments, and continuous deployment in Cube Cloud.
Once you start editing the data model in Visual Modeler editor, you will automatically enter the development mode, so you can safely make changes and test them in Playground without affecting your production deployment.
When you are ready to deploy your changes, it is recommended to create a pull request, which should be reviewed before merging to the production environment.
You can see cubes on the <Btn>Cubes</Btn> tab of Visual Modeler.
Cubes are represented as rectangles on the canvas with joins between them as an entity-relationship diagram (ERD). You can pan and zoom the canvas and search cubes using the input box.
To add a cube from scratch, click the <Btn>+ Add Cube</Btn> button.
You can also generate the data model for a new cube based on the database schema. To do so, click the <Btn>+ Generate Cube</Btn> button. It will bring up the modal window where you can select a table from your data source:
<Screenshot src="https://ucarecdn.com/5738b483-91f2-436c-9768-ba7858a6f1c1/" />To edit a cube, click it on the canvas. Then, in the sidebar, click the <Btn>Edit</Btn> button. This will bring up the modal window where you can edit the cube's details:
<Screenshot src="https://ucarecdn.com/09c12fc2-b4d3-4e96-a05c-002f7f0dcc5e/" alt="Edit cube dialog" />
Yu can also click <Btn>+ Add → Dimension</Btn>, <Btn>+ Add → Measure</Btn>, or <Btn>+ Add → Access Policy</Btn> to quickly add respective members to the cube.
You can add or edit joins via the <Btn>Relationships</Btn> tab while you're editing a cube.
You can also add joins visually by dragging a line on the canvas from the side of one dimension to another:
<YouTubeVideo url="https://drive.google.com/file/d/1t5RPLLv9CsKvpqeRm0Dh3pnfmpADP1hq/preview" />You can see views on the <Btn>Views</Btn> tab of Visual Modeler.
Views are represented as rectangles on the canvas. Cubes that are involved in a view and provide members for it, are shown to the left of the view.
To add a view, click the <Btn>+ Add View</Btn> button. It will bring up a dialog where you can choose the base cube, set the view details such as name and title, and add join paths.
<Screenshot src="https://ucarecdn.com/ce5e9014-2ce6-4aa8-a811-469617708684/" alt="Adding a view" />
To edit a views, click it on the canvas. Then, in the sidebar, click the <Btn>Edit</Btn> button.
All modal windows mentioned above provide the option to use the YAML mode which can be entered by clicking the <Btn>Edit with YAML</Btn> button.
In this mode, you can see and edit the data model represented using the YAML syntax. That allows you to work around known limitations and use all data modeling features while staying in Visual Modeler editor.
<Screenshot src="https://ucarecdn.com/d8c15304-571d-4a3a-a58d-1574ab4d1712/" alt="YAML mode" />
Visual Modeler does not intend to support all available data modeling features. You always have options to use the YAML mode in Visual Modeler or switch the code-first data model editor.
Currently, Visual Modeler does not support the following features in its UI:
Cubes and views using these data modeling features will still be displayed in Visual Modeler. However, those features can only be edited via the YAML mode or in the code-forst data model editor.
Additionally, Visual Modeler only allows editing of cubes and views that are defined using the YAML syntax (not JavaScript). Also, it does not allow editing of dynamic data models or models which use Jinja.