DEV Community

Rümeysa Öz for Açıklab

Posted on

1

Miço - Kapsamlı Rapor Nasıl Hazırlanır?

1. SQL Sorgusu Oluşturma

  • Miço veritabanındaki veriler kullanılarak rapor oluşturmak üzere SQL sorgusu yazılır.

Örnek: Veritabanındaki makinelerin sertifikaları hakkında bir sorgu oluşturulur:

select 
    m.id 
    , m.hostname
    , c.subject
from certificates c inner join machines m  on c.machine_id = m.id;
Enter fullscreen mode Exit fullscreen mode
  • Bu SQL sorgusu, "certificates" ve "machines" isimli iki tabloyu birleştirir. Bu birleştirme, "certificates" tablosundaki "machine_id" ve "machines" tablosundaki "id" alanlarının eşleşmesine dayanır.

  • Sorgu sonucunda, her bir sertifikanın konusunu ("subject"), ilgili makinenin kimliğini ("id") ve adını ("hostname") elde ediyoruz. Bu, belirli bir sertifikaya karşılık gelen makinenin bilgilerini görmemizi sağlar.

2. SQL Sorgusunu YAML Dosyasına Çevirme

hasjoin: SQL sorgusunda birden fazla tablo kullanılıp kullanılmayacağını belirtir. Eğer true ise, SQL sorgusunda birleştirme (JOIN) işlemi gerçekleştirilecektir.

hascondition: SQL sorgusunda bir veya daha fazla filtreleme (WHERE) koşulu olup olmayacağını belirtir. Eğer true ise, conditions bölümünde belirtilen koşullar kullanılacaktır.

name: Raporun adıdır.

description: Raporun genel açıklamasıdır.

supportedos: Raporun hangi işletim sistemlerini desteklediğini belirtir. Bu değer all, linux, windows gibi seçenekler olabilir.

author: Raporu oluşturan kişi veya kuruluşun adıdır.

group: SQL sorgusunda GROUP BY kullanılarak gruplandırma yapılacak sütunları belirtir. Gruplandırma, belirli bir sütundaki benzersiz değerlere göre sonuçları toplar.

category: Raporun hangi kategorilere ait olduğunu belirtir. Bu alan birden fazla değer içerebilir ve genellikle raporları sınıflandırmak için kullanılır.

selectcolumns: SQL sorgusunda SELECT ile seçilen sütunları belirtir. Bu sütunlar, sonuçta gösterilecek olan sütunlardır.

tables: SQL sorgusunda FROM ifadesinde kullanılan tabloları belirtir. name tablo adını, pkcolumn birincil anahtar sütununu, isprimary ise hangi tablonun ana tablo olduğunu belirtir.

logicoperators: SQL sorgusundaki koşulları birleştiren mantıksal operatörleri belirtir. Genellikle AND ve OR operatörleri kullanılır.

conditions: SQL sorgusundaki WHERE ifadesinde kullanılan koşulları belirtir. type karşılaştırma tipini (like, =, !=, <, >, etc.), table ve column koşulun hangi tablo ve sütunda uygulanacağını, variable ise karşılaştırılacak değeri belirtir.

  • Örnek olarak verilen SQL sorgusunu YAML formatına çevirirsek, şu şekilde gözükecektir:
hasjoin: true
hascondition: false
name: Sertifikalar
description: This template creates an report about machines certificates.
supportedos: all
author: HAVELSAN A.Ş.
group:
    - machines.hostname
    - machines.os_name
    - machines.ip_addr
    - certificates.subject
category:
    - general
selectcolumns:
    - machines.hostname
    - machines.os_name
    - machines.ip_addr
    - certificates.subject
tables:
    - name: certificates
      pkcolumn: id
      isprimary: true
    - name: machines
      pkcolumn: machine_id
      isprimary: false
logicoperators:
    - AND
    - OR
Enter fullscreen mode Exit fullscreen mode
  • "Sertifikalar" adı verilen bir rapor oluşturulacak ve bu rapor, makine sertifikiları hakkında bilgi içerecek.

  • Bu YAML dosyasının, daha önceki SQL sorgusuna şu şekilde karşılık gelir:

name, description, supportedos, author ve category alanları, raporun meta verilerini tanımlar. Bu, sorguyla doğrudan ilgili olmayabilir ancak raporun kim tarafından oluşturulduğu,hangi işletim sistemlerini desteklediği ve hangi kategorilere ait olduğu gibi bilgiler içerir.

group ve setcolumns alanları, SQL sorgusundaki SELECT ifadesine karşılık gelir. Bu alanlar, raporun hangi sütunları içereceğini belirtir.

tables alanı, SQL sorgusundaki FROM ve INNER JOIN ifadelerine karşılık gelir. Bu alan, hangi tabloların sorguda kullanılacağını ve bu tabloların hangi sütunlarının primary key olduğunu belirtir. isprimary değeri, hangi tablonun ana tablo olduğunu belirtir. true olan tablo ana tablodur ve false olan tablo ile birleştirilir.

logicoperators alanı, SQL sorgusundaki koşul operatörlerini belirtir (AND, OR).

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more

Top comments (0)

AWS Security LIVE!

Tune in for AWS Security LIVE!

Join AWS Security LIVE! for expert insights and actionable tips to protect your organization and keep security teams prepared.

Learn More

👋 Kindness is contagious

Dive into an ocean of knowledge with this thought-provoking post, revered deeply within the supportive DEV Community. Developers of all levels are welcome to join and enhance our collective intelligence.

Saying a simple "thank you" can brighten someone's day. Share your gratitude in the comments below!

On DEV, sharing ideas eases our path and fortifies our community connections. Found this helpful? Sending a quick thanks to the author can be profoundly valued.

Okay