Last night, I attended the 10th Analytics Engineering Meetup in Amsterdam. It was my first Analytics Engineering Meetup and the first time seeing the GitHub Copilot at work.
Sam Morrow, Senior Software Engineer at GitHub, asked the GitHub Copilot how to build a box and whisker chart. In a matter of seconds, the LLM imported pyplot, generated random data, and called functions to visualize the data in the requested chart. Not only, Copilot was also able to explain the code it used.
Curious about the AI Copilot offer in the Analytics Engineering space, I did a quick search and found out about the Snowflake Copilot, running securely inside the Snowflake Cortex. I decided to write this blog to express my thoughts about it.
GitHub Copilot
GitHub Copilot can do many things. It integrates the power of artificial intelligence directly into the developer’s workflow. As a virtual pair programmer, GitHub Copilot offers autocomplete-style suggestions based on the context of the code you’re writing, speeding up the development process and potentially improving code quality.
It provides an intuitive interface that allows developers to easily view and incorporate suggestions as they code. The setup process is straightforward: starting with an active GitHub Copilot subscription, followed by installing the Visual Studio Code extension, and finally authorizing it with your GitHub account.
Whether it’s crafting a new function or generating database queries, Copilot’s suggestions can often encompass entire function bodies or complex logic with just a simple prompt from the user. It doesn’t stop at single suggestions; developers have the option to view alternative proposals or dive into more detailed suggestions through a new tab, enhancing flexibility in coding approaches. Additionally, GitHub Copilot can generate code based on natural language comments, allowing developers to describe what they want to achieve and letting Copilot handle the implementation details.
Despite its advanced capabilities, developers are encouraged to review Copilot’s suggestions, as the AI’s understanding may not always align perfectly with the developer’s intent or project requirements. This innovative tool not only aims to boost productivity but also strives to enhance the learning process for developers, offering insights into new frameworks and coding patterns.
Luke Barousse is one of my favorite creators in the data landscape. His video shows GitHub copilot at work:
Snowflake Copilot
Snowflake is staying up to date when it comes to AI. Examples are the Snowflake Document AI and the Snowflake Copilot.
Snowflake Copilot is a tool designed to simplify data analysis within the Snowflake environment. The power of Large Language Models (LLMs), allow Snowflake Copilot to offer a user-friendly interface that enables both seasoned data analysts and beginners to explore, query, and understand their data with ease. Deeply integrated into Snowflake Cortex, Snowflake’s advanced AI service, Copilot ensures that all interactions and data exchanges remain securely within the Snowflake ecosystem, adhering strictly to Role-Based Access Control (RBAC). This means users can confidently navigate and analyze their data without compromising on security or data governance.
Users can:
- Start data exploration with simple questions about data structure.
- Generate and refine SQL queries through conversational inputs.
- Seek suggestions for optimizing query performance.
- Learn about Snowflake’s features and SQL, enhancing their proficiency.
Some limitations include:
- Support for English and SQL only.
- Limited direct access to data within tables.
- Occasional delays in response times and in recognizing new databases and schemas.
To know more about Snowflake Copilot, head to the Snowflake Documentation.
Familiarize yourself with AI Copilots, or trail behind
Surfing LinkedIn and subreddits, a statement emerges frequently:
“AI won’t take your job; a person using AI will”.
Historical progress shows that technological innovations have always enhanced human capabilities, making our tasks quicker, more efficient, and productive. Consider the air fryer: it drastically cuts down the time to cook a potato compared to the older method of starting a fire using wood, flint, and steel. Yet, it still demands a human to operate it effectively.
Similarly, a code copilot can generate the necessary code, but it relies on us to pose the correct questions, refine the output through iterative processes, and evaluate the quality of its results. These technologies enhance our abilities but do not replace the need for human insight and intervention.
Some personal considerations
AI Copilots for Analytics Engineering are helpful, and can truly speed up learning and productivity. They cannot do the job for you, meaning that if you don’t know what’s requested, you won’t know what to request. Moreover, the more general the prompt, the more general the answer.
I started using ChatGPT Plus last year. After understanding how to interact with it, it helped me solve problems and challenges and reduce frustration. I don’t use it to do the work for me, but rather to do the heavy lifting and as a sparring partner.
I use it for a variety of applications:
- Writing, debugging, and explaining SQL and Python code.
- Spreadsheet formulas and calculations for my personal finances.
- Proofreading of English copy I write, to make it more understandable (us Italians tend to be wordy when speaking English)
- To understand the core of complex concepts, adding ELI5 (Explain Like I’m Five) to the prompt.
There are also user-generated GPTs, that specialize in a field and have a custom communication style. There are many of them, categorized in Writing, Productivity, Research & Analysis, Programming, Education, and Lifestyle.
Plus, DALL-E is fun.
As a toetje (dessert/treat in Dutch) after reading my blog, here’s another AI-generated image of a coding Copilot: