Haql ile ölçekte esnek veri alımı


Haql nedir?

2022’de bir meydan okuma ile karşı karşıya kaldık: Müşterilerimiz için yararlı, eyleme geçirilebilir gösterge tabloları oluşturmak istedik ve bunları hızlı bir şekilde inşa etmek istedik. Verilerimiz vardı, bağlamımız vardı ve tasarımlarımız vardı, ancak her ek veri görselleştirme için veri sarsma sürecini ölçeklemenin bir yolunu kaçırıyorduk. Yardımcı sınıflar oluşturduk, kuru ve soyutladık, ancak yine de kendimizi hataya eğilimli ve hata ayıklanması zor opak arel sorguları yazarak boğulduk. Bunun da ötesinde, karmaşık bir veritabanı yetkilendirme katmanında gezinirken performans için optimize etmeye çalışmak, yükleme süreleri ve güvenlik arasında zor değişimlere yol açtı.

HAQL’e girin. ActiveRecord, Arel veya Riskli Raw SQL bloklarındaki her sorguyu tanımlayarak mücadele etmek yerine, neden arayüzü basitleştirmiyorsunuz ve hızlı bir analitik sorgu motorunun özel ihtiyaçlarına odaklanmıyorsunuz? Özünde, HAQL sadece şudur: Veri analizi için kasıtlı olarak modellenen tablolara performans gösteren toplu sorguları yazmak için basitleştirilmiş bir sorgu arayüzü.

Arka uçta HAQL, belirli bir girişten AREL düğümlerini oluşturan bir yakut sınıfından oluşur ve mevcut şema, yetkilendirme, veritabanı işlevleri, veri türleri, çıktı formatları, veritabanı bağlantıları, satır sınırları, hata işleme ve üzerinde ince taneli kontrol sağlar. Daha.

Sorgu girişlerinin kendileri oldukça yapılandırılmış ve kesinlikle yazılmıştır, bu da kötü amaçlı yükleri doğrulamayı ve erişim kontrollerini zorunlu kılar. Ve en önemlisi orijinal kullanım durumumuz için, yapılandırılmış girişler ve çıkışlar bize hızla yeni gösterge tabloları oluşturma yeteneği verir.

En yaygın veri görselleştirmelerimiz için ön uçta yeniden kullanılabilir reaksiyon bileşenleri yazmak için bu HAQL yanıt sözleşmesini kullandık; Şimdi bir grafik bir yapılandırma haline gelir ve yeni bir gösterge tablosu oluşturmak düşük kodlu bir etkinlik haline gelir.

Peki nasıl çalışır?

HAQL tarafından etkinleştirilen platform özelliklerinin önizlemesi
HAQL tarafından etkinleştirilen platform özelliklerinin önizlemesi

HAQL sorgusunun anatomisi

Bir HAQL sorgusu, bir SQL sorgusunun tanıdık bileşenlerinin çoğuna sahiptir: Tahminlerin isteğe bağlı olduğu, ifadeleri birleştirme, spesifikasyonlara göre sipariş ve sınır yönergeleri ile birlikte gerekli bir Seçim deyimi. Sorgular tipik olarak GraphQL aracılığıyla yürütülür, ancak açıkça JSON olarak tanımlanabilir. Bir örneğe bakalım.

Bu sorgu ile, Select ifadesinde varlığa göre gruplandırılan ödüllerin toplamını alıyoruz. Varlıklar tablosuna birleştirme ifadesindeki Bounties tablosuna katılıyoruz ve bir dizi tahmin aracılığıyla birleştirme koşullarını belirtiyoruz. Son olarak, sonuçları toplanan ödül miktarı ile sipariş ediyoruz.

Rails arka ucumuzdaki perde arkasında, her sorgu bileşeni ayrıştırılır, onaylanır ve bir Arel sorgusunda bir düğüm olarak dahil edilir. Bu noktada, uygunsuz erişime karşı yetkilendirme tahminleri ve diğer önlemler de uyguluyoruz. Sonuçlar daha sonra GraphQL ile uyumlu bir anahtar değer formatında döndürülür.

PostgreSQL’de, yukarıdaki sorgu şu şekilde tercüme edilir:

Basit bir arayüz olmasına rağmen, HAQL oldukça karmaşık sorgulara izin verir. Yeniden kullanılabilir ön uç bileşenleri ve ilgili sorguları gruplandırmak için iyi tanımlanmış desenlerle birlikte HAQL, tipik kullanım durumlarında haftalardan saatlere yeni bir gösterge tablosu oluşturma süresini düşürdüğünü bulduk.

Katalizörlere yatırım yapmak

Mühendislik dünyasında, küçük iyileştirmelerin ölçekte ilk problemi büyük ölçüde aşan yankılara sahip olduğu durumdadır. Bu kuvvet çarpanlarını keşfetmek bilimden daha fazla sanattır, ancak HAQL ile neredeyse birçoğu tamamen beklenmedik bir dizi uygulama olduğunu öğrendik.

HAQL için en heyecan verici fırsatlardan biri HAI, Hackerone’un AI Copilotu ile olan ilişkisidir. Haql’in şeması doğal olarak bilgi ile yoğun ve son derece yapılandırılmıştır, bu da HAI’nin konvansiyonel geri kazanılmış üretim (RAG) teknikleri yoluyla dili öğrenmesini kolaylaştırır ve HAI’nin gerçek zamanlı olarak bir ajan olarak verilerini getirmesini, analiz etmesini ve verilerini oluşturmasını sağlar.

Bu analitik sorgu katmanı olmadan, HAI geliştiricilerimizin bir LLM’den üretilen SQL’ü koaksil etmek için elle yapılandıran veri erişim kuralları ve şematik bağlam yapmaları gerekecekti, doğrulama için ayrıştırıcı yazmaları gerekirdi ve zorlanırlardı. Farklı yanıt formatlarını işlemek için karmaşık mantık uygulamak. Bunun yerine, LLM’nin sistem istemine nispeten basit bir ekleme, güçlü yeni bir işlevselliğin kilidini açar: hackerone platformunda bağlam farkında, sohbet tabanlı öngörüler.

Ek bir fayda olarak, basit ama katı yetkilendirme kuralları, Hai’nin HAQL sorgularını güvenli bir şekilde yürütme yeteneğine daha fazla güvenir ve zengin meta verilere destek, aksi takdirde mümkün olmayacak daha güvenilir sorgulara “yönlendirmemizi” sağlar.

Sınırlamalar

Asker yapım ve satın al ve açık kaynak satın alım, HAQL bir istisna değildir. Bu sorunu çözmemize yardımcı olabilecek başka araçlar var mı? Elbette. Bir Rails uygulamasında evde yetiştirilen bir özel sorgu motorunu yönetmenin dezavantajları var mı? Kesinlikle. Henüz ortaya çıkarmadığımız bilinmeyen riskler var mı? Kesinlikle.

Verbose sözdizimi, ilk başta deneyimli SQL kullanıcıları için de ağır hissedebilir ve alt sorgular, CTE’ler, sendikalar ve benzerleri gibi daha karmaşık işlemler için HAQL en iyi seçenek değildir (henüz). Ancak her zaman doğru iş için doğru iş için doğru bir araç vardır ve HackerOne’da Haql, araç kutusunda sahip olmak için güçlü bir araçtır.

İleriye dönük

Gelecekte, HAQL’in gösterge panolarına güç vermenin çok ötesine geçmesini bekliyoruz. Zaten bir avuç dinlenme API uç noktasını mümkün kılar ve gelecekte muhtemelen doğrudan API aracılığıyla sorgulanabilir. HAQL şemasında bulunan veri kümelerinin sayısı, Hackerone’un ürün paketinin daha büyük bir kısmını karşılamak için istikrarlı bir şekilde büyüyor. Son olarak, HAI ile entegrasyon, verilerle yüzeyinin ve etkileşime girmenin yaratıcı yeni yollarını keşfettiğimiz için ek ürün ve mühendislik yatırımı çekeceğinden emin olabilirsiniz.

Bu yeteneklerin sadece bir olduğu ortaya çıkan şeyde büyümek için çok Bir bütün olarak siber güvenlik ve teknoloji için heyecan verici zaman.



Source link