Sii Polska

SII UKRAINE

SII SWEDEN

  • Szkolenia
  • Kariera
Dołącz do nas Kontakt
Wstecz

Sii Polska

SII UKRAINE

SII SWEDEN

Wstecz
Nie tylko SELECT: AI jako funkcja w SQL

Sztuczna inteligencja coraz śmielej wkracza do narzędzi wykorzystywanych w codziennej pracy specjalistów IT. Czatboty, asystenci, automatyczne podpowiedzi kodu czy interaktywna obsługa klienta – to tylko niektóre z zastosowań dużych modeli językowych (LLM), które rewolucjonizują sposób interakcji z technologią. Umożliwiają one prowadzenie naturalnych rozmów, zastępują tradycyjne wyszukiwarki i dostarczają gotowe rozwiązania dla szerokiego spektrum problemów.

SQL to dojrzały, powszechnie znany język zapytań, który stanowi podstawowe narzędzie pracy analityków i inżynierów danych. Jego największe atuty to ustandaryzowana składnia, przejrzystość oraz łatwość użycia. W praktyce zawodowej zapytania SQL przeplatają się z procedurami, a wyniki – z błędami kompilatora. Coraz większe wymagania stawiane przetwarzaniu danych przyspieszają powstawanie coraz bardziej zaawansowanych platform do przetwarzania danych.

Dzięki nowoczesnym platformom chmurowym, takim jak Snowflake czy Databricks, funkcje oparte na sztucznej inteligencji stają się integralną częścią środowiska SQL. Można z nich korzystać bezpośrednio w zapytaniach, obok tradycyjnych funkcji języka.

Funkcje AI w SQL – praktyczne zastosowania

To otwiera nowe możliwości – AI może wspierać developera w klasyfikowaniu, podsumowywaniu czy maskowaniu danych, a wszystko to w ramach prostych, dobrze znanych konstrukcji SQL. Zarówno Snowflake, jak i Databricks oferują funkcje AI w swoich dialektach SQL. Nie wszystkie funkcje są dostępne na każdej z platform.

W moich ostatnich zadaniach projektowych miałem okazję wykorzystać kilka z nich. Przedstawiam je poniżej.

  • Hurtowe odpytywanie modeli językowych na zadane pytania z listy zawartej w konkretnym polu. Przydatne, gdy trzeba utworzyć funkcjonalność typu najczęściej zadawane pytania z możliwością faktycznego zadawania pytań przez użytkowników.
SnowflakeDatabricks
AI_COMPLETE(’mistral-large’, CONCAT(’Critique this review in bullet points: ’, content))ai_query(’databricks-meta-llama-3-3-70b-instruct’,”Can you tell me just the name of the US state that serves the provided ZIP code? zip code: ” || pickup_zip )  

Tu przykład wykonania na platformie Databricks:

SELECT *,
  ai_query(
    'databricks-meta-llama-3-3-70b-instruct',
    "Can you tell me just the name of the US state that serves the provided ZIP code? zip code: " || pickup_zip
    )
  FROM samples.nyctaxi.trips
  • Ułatwione prototypowanie i grupowanie danych poprzez klasyfikację danych wejściowych (Snowflake i Databricks). Załóżmy, że w systemie źródłowym jest pole z opisem reklamacji i chcemy je skategoryzować pod względem artykułu:
SnowflakeDatabricks
ai_classify(claim_description, ARRAY(’clothing’, 'shoes’, 'accessories’, 'furniture’) ) as claim_category   ai_classify(claim_description,     '[“clothing”, “shoes”,        “accessories”, “furniture”]’              ) as claim_category
  • Porównywanie łańcuchów znaków lub porównywanie obrazów (tu tylko w Snowflake). Funkcja zwraca ułamek dziesiętny z przedziału 0,1, gdzie 1 to identyczne teksty lub obrazy. Może się przydać, kiedy musimy znaleźć rodzinę podobnych łańcuchów znaków.
SnowflakeDatabricks
ai_similarity(buyer_company, payer_company)ai_similarity(buyer_company, payer_company)
  • Maskowanie danych w polach typu komentarz. Wykorzystać można do automatyzacji klauzuli RODO i usunięcia danych osobowych z pól oznaczonych jako komentarz. Pole może zawierać dłuższą wypowiedź lub tekst, który nie zawsze pasuje do wyrażeń regularnych.
SnowflakeDatabricks
AI_REDACT(   input => 'My name is John and I live at twenty third street, San Francisco.’,   categories => [’NAME’, 'EMAIL’]) ai_mask(
    ‘According to the message from Lisa Hartman [email protected] we need to discuss the potential cooperation with our new leader Adam Sandler.’,
    array(’person’, ’email’)
  );  
  • Analiza sentymentu Używając funkcji na platformie Databricks, jako wynik otrzymamy 5 możliwych wartości (’positive’, 'negative’, 'neutral’, 'mixed’, null – w przypadku braku możliwości określenia sentymantu).

    Wynik uruchomienia tej funkcji na platformie Snowflake zwróci nam wartości liczbowe z przedziału od -1 do 1, gdzie wartości od 0,5 do 1 oznaczają pozytywny wydźwięk wypowiedzi, wartości od -0,5 do 0,5 neutralne, a wartości od -0,5 do -1 negatywne.
SnowflakeDatabricks
ai_analyze_sentiment(‘Pizza was very tasty’)ai_analyze_sentiment(‘Pizza was very tasty’)

Ponadto mamy funkcje, które potrafią poprawić tekst, tłumaczyć w zadanym zbiorze danych:

  • ai_fix_grammar(content)
  • ai_translate(content, to_lang)

Rola AI w nowoczesnej architekturze danych

Warto również spojrzeć na funkcje AI w SQL z perspektywy architektury danych. Tradycyjne podejście do wykorzystania modeli językowych wymagało wyniesienia danych poza platformę danych – do zewnętrznych usług lub pipeline’ów ML, co wiązało się z dodatkowymi kosztami, opóźnieniami oraz ryzykiem związanym z bezpieczeństwem danych. Integracja funkcji AI bezpośrednio w silniku SQL znacząco upraszcza ten model.

W architekturze typu Medallion (Bronze, Silver, Gold) funkcje AI naturalnie wpisują się w proces wzbogacania danych, szczególnie na etapie przejścia z warstwy Silver do Gold. W warstwie Bronze przechowywane są dane surowe – często nieustrukturyzowane, takie jak logi, opinie klientów czy transkrypcje. W warstwie Silver dane są oczyszczane i standaryzowane, ale to właśnie tutaj możemy dodatkowo wykorzystać funkcje, np. ai_classify czy ai_mask, aby nadać im kontekst biznesowy lub usunąć dane wrażliwe. W efekcie do warstwy Gold trafiają już dane wzbogacone o dodatkowe atrybuty generowane przez AI, takie jak kategorie, sentyment czy priorytety.

Takie podejście eliminuje potrzebę przemieszczania danych poza platformę (data movement), ponieważ zapytania SQL mogą bezpośrednio wywoływać modele działające w ramach infrastruktury dostawcy chmurowego. Dodatkowo logika AI staje się częścią pipeline’u danych – może być zamknięta w widokach lub procedurach składowanych, co upraszcza utrzymanie i rozwój rozwiązań. Skalowanie odbywa się automatycznie na poziomie silnika SQL, który rozdziela obciążenie związane z wywołaniami modeli na dostępne zasoby obliczeniowe.

Przetwarzanie odpowiedzi

Mając wygenerowaną odpowiedź, analizę sentymentu lub klasyfikację, możemy wzbogacić analizy i dashboardy w późniejszych etapach przetwarzania danych. Używając funkcjonalności AI w warstwie srebrnej, wzbogacamy zestaw filtrów i grupowań dostępnych dla biznesu lub narzędzi raportowych w warstwie złotej. Może się to przyczynić do poprawy analiz, a w rezultacie obcięcia kosztów lub zwiększenia przychodów, opierając się na danych pochodzących z naszych platform.

Koszty używania AI w SQL

Ponieważ w zapytaniu wykorzystujemy modele językowe, może ono być dłuższe i droższe niż standardowe zapytanie SQL. Wynika to z użycia funkcji niestandardowych. Zasadniczo funkcje AI są znacznie droższe niż klasyczne zapytania SQL, ponieważ ich koszt jest bezpośrednio związany z ilością przetwarzanych danych tekstowych (tokenów), a nie z czasem pracy infrastruktury.

Dla zapytania SQL koszt może być minimalny, często poniżej 1 centa, zwłaszcza przy małych lub zoptymalizowanych operacjach. Przykładowo, pobranie 100 rekordów z tabeli zużyje ułamki kredytów, co przekłada się na groszowe koszty.

Dla zapytań z funkcjami AI koszt zależy od długości tekstu. W przypadku dużych, złożonych zapytań opłata za przetwarzanie tekstu może szybko rosnąć do kilku, a nawet kilkudziesięciu dolarów za jedno zapytanie, co jest wielokrotnie wyższe niż koszt tradycyjnego SQL-a.

Na platformie Databricks koszty zapytań można sprawdzić w tabeli  system.billing.usage, używając filtra billing_origin_product = 'AI_FUNCTIONS’. Natomiast na platformie Snowflake przygotowany jest dedykowany widok CORTEX_AISQL_USAGE_HISTORY.

Blog Data Analytics Desktop  - Nie tylko SELECT: AI jako funkcja w SQL

Data & Analytics

Dzięki naszym usługom analizy i przetwarzania danych będziesz podejmować trafne decyzje, zbudujesz skuteczne strategie i znajdziesz nowe źródła przychodów.

Oferta Data&Analytics

Podsumowanie

Zaimplementowanie sztucznej inteligencji w funkcje języka SQL otwiera możliwości przyspieszenia przetwarzania danych. To, co do tej pory musiało się opierać na mapowaniach, wyrażeniach regularnych lub wieloetapowej filtracji, może zostać zastąpione przez algorytmy sztucznej inteligencji. Musimy pamiętać, że funkcje działają w oparciu o modele językowe i nie muszą być zawsze w 100 procentach skuteczne.

Minusem tych rozwiązań jest dodatkowy koszt, jaki ponosimy w momencie uruchomienia zapytania. Niemniej uważam, że zysk z wykorzystania AI do tego czy innego zadania oszczędzi czas, który musiałby zostać użyty na budowę skomplikowanego skryptu. Lista dostępnych funkcji cały czas się wydłuża i warto sprawdzać od czasu do czasu, czy na aktualnie używanej platformie nie znalazły się nowe funkcje, które jeszcze bardziej ułatwią przetwarzanie i analizy danych.

Warto mieć na uwadze, że te ułatwienia są jeszcze w fazie Public Preview na platformie Databricks, a Snowflake informuje, że funkcje są dostępne dla wybranych regionów. Przed uruchomieniem kodu na produkcji zaleca się sprawdzenie najnowszej dokumentacji funkcji, których chcemy użyć.

Materiały

5/5
Ocena
5/5
Avatar

O autorze

Michał Schatt

Senior Software Engineer. Ma 10-letnie doświadczenie w obszarze Business Intelligence. Od 5 lat pracuje z rozwiązaniami klasy Big Data. Został nagrodzony wyróżnieniem Sii Star w 2026 roku. Po pracy lubi jeździć na rowerze lub pieszo przemierzać górskie szlaki

Wszystkie artykuły autora

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Może Cię również zainteresować

Dołącz do nas

Sprawdź oferty pracy

Pokaż wyniki
Dołącz do nas Kontakt

This content is available only in one language version.
You will be redirected to home page.

Are you sure you want to leave this page?