{"slug": "ai-powered-bi-with-snowflake-and-amazon-quick", "title": "AI-powered BI with Snowflake and Amazon Quick", "summary": "Amazon Web Services and Snowflake have integrated semantic views with Amazon QuickSight to unify business logic across AI and BI tools, reducing data reconciliation efforts and AI hallucinations. The solution allows natural-language queries against a governed data layer, demonstrated with a movie review dataset loaded from Amazon S3 into Snowflake.", "body_md": "[Artificial Intelligence](https://aws.amazon.com/blogs/machine-learning/)\n\n# AI-powered BI with Snowflake and Amazon Quick\n\nOne dashboard shows 42,000 active movie view counts while another shows 38,500. Your chat agent references a third number entirely. Data teams spend hours reconciling numbers instead of answering strategic questions, and trust in analytics erodes.\n\nThis is a pattern that we see across many organizations. Teams spend more effort reconciling numbers than actually using them, quietly slowing down decision-making and chipping away at confidence in the data.\n\nThe root cause is usually a *last-mile gap*: business logic lives inside each individual application rather than at the data layer where every application can share it.\n\n[Amazon Quick Sight](https://aws.amazon.com/quick/quicksight/) datasets on top of Snowflake [semantic views](https://docs.snowflake.com/en/user-guide/views-semantic/overview) close that gap. A *semantic view* is a Snowflake schema object that attaches business definitions (table, relationships, metrics, and dimensions) directly to your data. Any downstream application that queries the semantic view inherits the same definitions, so both AI and BI systems interpret information uniformly. This leads to trustworthy answers and significantly reduces the risk of AI hallucinations.\n\nYou can use semantic views in Cortex Analyst and query these views in a `SELECT`\n\nstatement. You can also share semantic views in private listings. As native Snowflake schema objects, semantic views have object-level access controls. You can grant or restrict usage and query rights just as with tables and views, supporting authorized, governed usage across SQL, BI, and AI endpoints. You can read more about how to write [Semantic SQL](https://docs.snowflake.com/en/user-guide/views-semantic/sql) in the Snowflake documentation.\n\nIn this post, you will learn how to build an end-to-end integration between Snowflake semantic views and Amazon Quick. The sample data is user review data for a media company. You start by loading movie review data from [Amazon Simple Storage Service](https://aws.amazon.com/s3/) (Amazon S3) into Snowflake, define a semantic view in SQL to add business meaning, explore it with natural-language queries through Cortex Analyst, and then generate an Amazon Quick dataset and dashboard. The dataset can be created manually or with a provided automation script. By the end, your BI team or AI team can ask natural-language questions against a governed data layer and trust that every response reflects the same business logic.\n\n## Solution architecture\n\nFigure 1: End-to-end architecture—data flows from Amazon S3 into Snowflake, where a semantic view governs business definitions, enabling both Cortex Analyst natural-language queries and Amazon Quick Sight dashboards.\n\nThis integration uses Snowflake’s native capabilities to ingest structured movie review data directly from Amazon S3 into a database schema. You then define a Snowflake semantic view with table relationships, dimensions, and metrics to enhance AI-powered analytics, all with SQL. The semantic model shifts from individual AI or BI layers to the core data platform, so all tools use the same semantic concepts.\n\n## Solution walkthrough\n\nThis walkthrough uses a movie review dataset to demonstrate the integration. The dataset consists of three tables (`MOVIES`\n\n, `USERS`\n\n, and `RATINGS`\n\n) that you load from Amazon S3 into Snowflake. On top of those tables, you define a semantic view that maps raw columns to business-friendly metrics and dimensions.\n\nFigure 2: A Snowflake semantic view adds business context (metrics, dimensions, and relationships) to raw tables, creating a shared definition layer for AI and BI tools.\n\nThis integration empowers the BI team to use natural language for creating interactive charts and dashboards, building calculated fields, developing data stories, and conducting what-if scenarios—and significantly reduces the risk of AI hallucinations. The BI team can also incorporate this Snowflake-sourced dashboard into the Amazon Quick Movies [Quick Space](https://aws.amazon.com/quick/spaces/) to enable retrieval augmented generation (RAG).\n\n## Prerequisites\n\nBefore you begin, make sure that you have the following in place:\n\n**Snowflake Enterprise account on AWS.** If you don’t have one, sign up for a[Snowflake trial account](https://signup.snowflake.com/)and select**Enterprise** on AWS.This role is required for creating semantic views and granting object-level privileges.`ACCOUNTADMIN`\n\nrole access in Snowflake.**AWS account.** If you don’t have one, create an[AWS account](https://aws.amazon.com/).**AWS Region alignment.** Sign up for both accounts in**AWS US West (Oregon)** or**US East (N. Virginia)**. Amazon Quick Sight is available in US East (N. Virginia), US West (Oregon), Asia Pacific (Sydney), and Europe (Ireland). Refer to the[Amazon Quick documentation](https://docs.aws.amazon.com/quicksight/)for the latest Regional availability.**Basic familiarity with SQL and Python.** You run SQL statements in Snowsight (Snowflake’s web interface) and run a Python-based script in AWS CloudShell.**Familiarity with data analysis concepts** such as tables, dimensions, and metrics.\n\n**Time commitment:** Allow 60–90 minutes to complete this tutorial end to end.\n\n**Estimated cost:** This tutorial uses minimal resources. Expect less than $10 in combined AWS and Snowflake costs.\n\n## Step 1: Set up your Snowflake environment and load data\n\nYou use [Snowsight](https://docs.snowflake.com/en/user-guide/ui-snowsight), Snowflake’s web interface, to import and run a provided notebook. The notebook creates the necessary compute warehouse, database, and schema, then loads the movie review data, so you don’t need to run the setup SQL manually.\n\n### Import the notebook\n\nTo get started, import the pre-built tutorial notebook into your Snowflake environment so you can follow along interactively.\n\n- Download the notebook\n`SF_Quick_Quickstart.ipynb`\n\nfrom the assets folder in the[GitHub repository](https://github.com/aws-samples/sample-aws-sa-genai/blob/main/4_Semantics/quick_start/SF%20Quick%20Start%20Tutorial.ipynb). - In Snowsight, choose the\n**plus (+)**,** Notebook**,** Import**, then select the downloaded notebook file. - Accept the default settings and select\n**Run on Warehouse**. The notebook defaults to`SYSTEM$STREAMLIT_NOTEBOOK_WH`\n\n(a system-provided compute resource), but you can choose a different warehouse from the dropdown. The notebook creates a new warehouse called`WORKSHOPWH`\n\nfor this tutorial.\n\nFigure 3: Image showing how to import the notebook in Snowsight using the plus (+) menu.\n\nFigure 4: Image showing the select **Run on Warehouse** option and the compute warehouse at notebook creation seclection.\n\nAfter notebook creation, you can choose a different warehouse from the notebook settings. For more information, see [notebook settings](https://docs.snowflake.com/en/release-notes/bcr-bundles/2025_01/bcr-1887).\n\n### Run the notebook to load data\n\nSnowflake Notebooks come pre-installed with common Python libraries—`numpy`\n\n, `pandas`\n\n, `matplotlib`\n\n, and more. To add other packages, choose the **Packages** dropdown in the top right of the notebook.\n\nRun all cells in sequence. The notebook provisions the `WORKSHOPWH`\n\nwarehouse and loads the movie review data into the `MOVIES`\n\ndatabase. After each cell completes, you see confirmation output below the cell.\n\n**Verify the setup:** After running all cells, confirm that you see three tables: `MOVIES`\n\n, `USERS`\n\n, and `RATINGS`\n\nin the `MOVIES.PUBLIC`\n\nschema.\n\n**Troubleshooting:** If a cell fails to execute, verify that you’re using the `ACCOUNTADMIN`\n\nrole. You can set this at the top of your notebook or worksheet with:\n\nFigure 5: Run all notebook cells to load data into the `MOVIES`\n\ndatabase.\n\n## Step 2: Define the semantic view and export the semantic view DDL\n\nAfter all cells run successfully, locate the `Get_SV_DDL`\n\ncell. This cell executes the following SQL to retrieve the semantic view’s DDL:\n\n**Important** After running the `Get_SV_DDL`\n\ncell, choose **Download as CSV** and save the file as `SF_DDL.csv`\n\n. You need this file in Step 4 to generate your Amazon Quick Sight dataset automatically. If you skip this step, the dataset generator can’t parse your schema.\n\nFigure 7: Choose Download as CSV to save `SF_DDL.csv`\n\n—required for the Quick Sight dataset generator.\n\n## Step 3: Explore your data with Cortex Analyst\n\nWith the semantic view created, you can immediately start querying your data in plain English—no SQL required. This step verifies that the semantic layer works correctly before you connect Amazon Quick Sight.\n\n### View the semantic view in Snowsight\n\n- In Snowsight, select\n**AI & ML** from the navigation pane. - Select the\n`SEMANTIC_QUICK_START_ROLE`\n\nthat you created earlier to confirm you have the right permissions. - Navigate to the\n**Movies** database, then**Public** schema and select the`MOVIES_ANALYST_SV`\n\nsemantic view to inspect its structure.\n\nFigure 8: The `MOVIES_ANALYST_SV`\n\nsemantic view visible in the Snowsight AI & ML section.\n\n### Add verified queries\n\nVerified queries are example questions with confirmed correct answers. They give [Cortex Analyst](https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-analyst) a reference when responding to similarly phrased questions, improving accuracy and reducing query latency. Add at least one verified query before testing natural-language questions.\n\nExample: verify “What is the average rating for all movies in 2023?” by confirming that Cortex Analyst generates the correct SQL. When a user later asks a similarly worded question, Cortex Analyst matches it against your verified queries first.\n\nFigure 9: Add verified queries in Snowsight to improve Cortex Analyst accuracy.\n\n### Test natural-language queries\n\nTry the following sample questions to confirm the semantic view responds correctly:\n\n- Show me the total rating values by movie title.\n- List the top 10 most popular movies of all time.\n\nFigure 10: Cortex Analyst translates natural-language questions into SQL using your semantic view definitions.\n\nTo use SQL to query a semantic view directly, refer to the [semantic view query examples](https://docs.snowflake.com/en/user-guide/views-semantic/example) in the Snowflake documentation.\n\n## Step 4: Create an Amazon Quick Sight dataset\n\nNow that your data is semantically defined in Snowflake, connect it to Amazon Quick Sight for interactive dashboards. The provided Quick Sight Dataset Generator script automates the entire pipeline from Snowflake DDL to a ready-to-query Quick Sight dataset.\n\n### Option 1: Run the Python package locally\n\nDownload the full solution from the [GitHub repository](https://github.com/aws-samples/sample-aws-sa-genai/tree/main/4_Semantics/full-solution). Follow the guidance in the README.md to connect to Snowflake, fetch the semantic view definition, convert the definition into Quick dataset schema, and create the Quick dataset. The Python scripts are interactive with self-guidance.\n\n### Option 2: Run the bash scripts in AWS CloudShell\n\nAs an alternative to running Python scripts locally, you can run the provided bash and Python scripts directly in AWS CloudShell to store credentials securely, and interactively create a fully configured Quick Sight dataset with SPICE ingestion—all from the command line.\n\n#### Upload the solution package\n\nDownload `Solution_Package.zip`\n\nfrom the [GitHub repository](https://github.com/aws-samples/sample-aws-sa-genai/blob/main/4_Semantics/powershell-solution/Solution_Package.zip). Then open the AWS Management Console and launch [ AWS CloudShell](https://aws.amazon.com/cloudshell/). Upload\n\n`Solution_Package.zip`\n\nusing the **Actions → Upload file** option in CloudShell.\n\nFigure 11: Upload `Solution_Package.zip`\n\nto AWS CloudShell from the Actions menu.\n\n#### Run the dataset generator workflow\n\nFollow these steps in sequence.\n\n- Unzip and enter the directory:\n- Upload the\n`SF_DDL.csv`\n\nfile you downloaded from the Snowflake notebook (the output of`GET_DDL`\n\non the semantic view). **Create an AWS secret.** Store your Snowflake credentials (account identifier, username, and password) as an AWS Secrets Manager secret. The script references this secret when creating the Quick Sight data source.- Run the interactive workflow.After the secret is created, run the single interactive script:\nThe interactive workflow script guides you through selecting or creating a Snowflake data source, configuring a new or existing dataset, parsing your\n\n`SF_DDL.csv`\n\nto generate a Quick Sight schema, creating or updating the dataset with SPICE ingestion, and monitoring ingestion progress until completion. Optionally, you can verify the ingestion status in the Quick Sight console and share the dataset with other Quick Sight users.\n\n## Step 5: Build your dashboard in Amazon Quick Sight\n\nAfter ingestion completes, open the Amazon Quick Sight console and navigate to **Datasets**. Select `movie-analytics-dataset`\n\nto confirm the data loaded correctly, then choose **Create analysis** to start building.\n\n**Explore with natural-language questions**\n\nAsk the same natural-language questions you tested in Cortex Analyst. Quick Sight generates corresponding visuals automatically. Try these sample questions to get started:\n\n- “Show me the highest-rated movies” – generates a bar chart ranking movies by average rating.\n- “What are the top 10 most-reviewed movies?” – displays a ranked list by review count.\n- “How do ratings distribute across genres?” – produces a breakdown by genre.\n- “Show me the trend of ratings over time” – creates a line chart of rating activity.\n- “Which users have submitted the most reviews?” – highlights the most active reviewers.\n\nExperiment with follow-up questions to drill deeper. For example, after seeing top-rated movies, try “Filter to only comedy genre” or “Show me ratings for the last 6 months.”\n\n**Create calculated fields using the semantic layer**\n\nBecause the semantic view already defines your core metrics and dimensions, you can extend your analysis in Quick Sight with calculated fields that build on those governed definitions. For example:\n\n- In your analysis, choose\n**Add**, then choose** Add calculated field**. - Create a field such as\n`rating_category`\n\nusing a formula like:\n\n```\nifelse({user_rating} >= 4, 'High', {user_rating} >= 2.5, 'Medium', 'Low')\n```\n\n- Use this new field to segment your visuals, for instance, a pie chart showing the proportion of High, Medium, and Low ratings.\n\nThis approach keeps your foundational metrics consistent (inherited from the semantic view) while giving analysts the flexibility to add derived fields for specific use cases.\n\n**Verify numbers match between Cortex Analyst and Quick Sight**\n\nTo build confidence that the semantic layer is working as intended, compare results across both tools:\n\n- In\n**Cortex Analyst**, ask: “What is the average rating for the top 5 most-reviewed movies?” - In\n**Quick Sight**, ask the same question or build a table visual with the same filters. - Confirm that the values match: both tools should return identical results because they query the same semantic view.\n\nIf you notice discrepancies, check the following:\n\n- Verify that no additional filters or row-level security rules are applied in one tool but not the other.\n- Confirm that both tools are using the same aggregation logic (for example, average compared to median).\n\nThis cross-validation step reinforces the core value proposition: a single semantic layer provides consistent answers regardless of which tool is asking the question.\n\nFigure 12: Amazon Quick Sight bar chart generated from a natural-language query against the Snowflake semantic view dataset.\n\nFigure 13: Additional Amazon Quick Sight visualization showing the most popular movies, driven by the same governed data layer.\n\n## Cleanup\n\nAfter the demo, complete the following cleanup steps:\n\n- Snowflake cleanup:Drop the\n`MOVIES`\n\ndatabase with the[DROP DATABASE](https://docs.snowflake.com/en/sql-reference/sql/drop-database)command. This is the fastest “bulk” action available. Then, drop the warehouse. - AWS cleanup:\n- Remove secrets: in AWS Secrets Manager, manage access and remove the selected secrets.\n- Delete data sources: navigate to Datasets in Quick Sight and delete any datasets or data sources.\n- Delete analyses and dashboards: manually delete dashboards, analyses, and datasets in the AWS Management Console.\n\n## Conclusion\n\nIn this post, we showed how to build an end-to-end integration between Snowflake semantic views and Amazon Quick. You loaded movie review data into Snowflake, defined a semantic view to establish consistent business definitions, verified the definitions with Cortex Analyst natural-language queries, and connected the data to Amazon Quick Sight for interactive dashboards.\n\n## Next steps\n\nNow that you have a working foundation, consider these ways to extend it:\n\n**Extend the semantic view.** Add more metrics, dimensions, or verified queries to cover additional business questions. Richer definitions improve Cortex Analyst accuracy for similarly phrased questions.**Apply this pattern to your own data.** Replace the movie review dataset with your organization’s data in Amazon S3. The same notebook and generator workflow applies to any tabular dataset.**Share semantic views across teams.** Snowflake semantic views are native schema objects with object-level access controls. You can grant or restrict usage just as you would for tables and views, supporting authorized, governed usage across SQL, BI, and AI endpoints.**Explore Amazon Quick Sight advanced features.** Build calculated fields, create data stories, and run what-if analyses to go deeper on the insights your semantic layer enables.**Share semantic views in private listings.** Distribute governed datasets to other Snowflake accounts by publishing semantic views through Snowflake Data Sharing private listings.**Learn more about open semantic standards.** Snowflake unites industry leaders to unlock AI’s potential with the[Open Semantic Interchange (OSI)](https://www.snowflake.com/en/blog/osi-initiative-expands-partners/)initiative—a collaboration dedicated to creating a vendor-agnostic standard for semantic data.\n\nTry this integration with your own data and share your experience in the comments. If you have questions or feedback, the AWS and Snowflake communities are here to help.", "url": "https://wpnews.pro/news/ai-powered-bi-with-snowflake-and-amazon-quick", "canonical_source": "https://aws.amazon.com/blogs/machine-learning/ai-powered-bi-with-snowflake-and-amazon-quick/", "published_at": "2026-06-24 18:19:35+00:00", "updated_at": "2026-06-24 18:39:43.348147+00:00", "lang": "en", "topics": ["artificial-intelligence", "ai-infrastructure", "ai-tools", "ai-products", "ai-ethics"], "entities": ["Amazon Web Services", "Snowflake", "Amazon QuickSight", "Cortex Analyst", "Amazon S3"], "alternates": {"html": "https://wpnews.pro/news/ai-powered-bi-with-snowflake-and-amazon-quick", "markdown": "https://wpnews.pro/news/ai-powered-bi-with-snowflake-and-amazon-quick.md", "text": "https://wpnews.pro/news/ai-powered-bi-with-snowflake-and-amazon-quick.txt", "jsonld": "https://wpnews.pro/news/ai-powered-bi-with-snowflake-and-amazon-quick.jsonld"}}