2023-12-16

Choosing the Right Hash Method in Apache Spark: xxHASH64 vs. SHA2

The choice between xxHASH64 and SHA2 hinges on the specific use case and requirements at hand. Let's delve into the characteristics of each:




1. xxHASH64: Speed and Efficiency

  • xxHASH64 is a non-cryptographic hash function renowned for its speed and minimal memory usage.
  • It is an ideal choice when the hash function's primary purpose is performance optimization rather than security.
  • Its efficiency makes it a go-to option for scenarios where swift data processing is paramount.

2. SHA2: Security and Resistance

  • SHA2, in contrast, is a cryptographic hash function designed with security in mind.
  • It excels in scenarios where data integrity and resistance against malicious tampering are top priorities.
  • While slower than xxHASH64, SHA2 provides a robust layer of security, making it the preferred choice for hash functions used in security-sensitive applications.

2021-08-14

Fun project using batch and stream processing

Sharing fun project using several scenarios would be useful for whom interested in Apache Spark usages in real projects. Actually it depends on the projects main aim, in some cases it is used for various processes such as ETL/ELT , anomaly detection, ML, graph analysis, stream processing etc.

Batch and stream processing

 

In our project I have used Spark for both stream and batch processing in Scala within 5 separate cases.

2021-04-11

Using Xcom with Python operators on Apache Airflow

 To interact with internal operators we do need to use results like as global variables, instead in Apache Airflow variables and XCom (cross communication) are used. While returning values, it is sometimes needed to call returned values from other functions. In Apache Airflow returned values are stored externally, stated external storage is key-value metadata database. 

 

2021-01-10

Scala notları__Koleksiyonlar

 


Scala ile ilgili önceki paylaşımımda koleksiyonları değerlendirmiştim, bu yazımda da benzer konuyu işleyeceğim, ama özet olarak önemli bulduğum noktalara değineceğim.

Scala`da herşeyin bir nesne olduğu ve dolayısıyla her nesnenin bir method ile işlem yaptığını yeniden belirteyim. Scala - Scalable(ölçeklenebilir) Language (programlama dili) olması nedeni ile diğer dillere nazaran daha esnetilebilir özelliklere sahiptir, bizim koleksiyonlar da istisna değil bu konuda. 

2020-05-25

Docker notes and using Hadoop on container

Docker is a set of platform as a service products that uses OS-level virtualization to deliver software in packages called containers. Containers are isolated from one another and bundle their own software, libraries and configuration files; they can communicate with each other through well-defined channels. (c. Wikipedia) There are a number of sources to learn Docker, but I shall show some useful notes and how to use HDFS using container on Linux.


2020-05-01

Useful Notes __ Scala Collections


The Scala collections library involves many classes and traits.The main trait is Iterable, which is the supertrait of both mutable and immutable variations of sequences (Seqs), sets, and maps. Sequences are ordered collections, such as Arrays and Lists. Sets contain at most one of each object, as determined by the == method. Maps contain a collection of keys mapped to values.
All collections are called as immutable by default, to call mutable type you should use scala.collection.mutable package where it is allowed.

2020-04-27

Havayolu şirketlerinde overbook uygulamasına ML çözümü

Gerçek dünya sorunlarına çözüm üretmek için odak noktamız havayolu sektörü oldu. Çalışmamız amacı, havayolu şirketlerine ek getiri sağlayan `overbook` uygulamasının hangi uçuşlarda kullanılabileceğinin yüksek olasılıkla tahmin edilebilmesidir. Havayolu firmaları satışa sunduğu seferin biletlerine ek olarak, yolcuların uçağı kaçırma, geç gelme ya da zamanında yapmadığı check-in işlemlerinden dolayı uçağın kapasitesinin üstünde yaptığı bilet satışı gerçekleştirir, bu uygulamaya `overbook` denir. Yolcu, bir sonraki uçuş ile  seyahat eder ve yolcu memnuniyeti sağlanması adına, ek bilet yada maddi olarak ödüllendirilir.
Bu konuda, projeyi beraber yürüttüğümüz arkadaşım Ozan Akalın ile birlikte hareket ettik, domain bilgileri ile birlikte gerekli veriler belirlendi. Şirketlerin gerçek verilerini paylaşmakta istekli olmadıkları, aynı zamanda veri gizliliği nedeniyle zorluk yaşadık.Farklı API`lerin kullanımını denendi, fakat gerekli verilere erişemedik. Şanslıyız ki istediğimiz verilere benzer verisetini bulduk ve projemizi biraz da ona göre şekillendirdik.
Proje yönetimi aşamasında farklı aşamalar belirlendi:
  • Planlama
  • Bulut ortamında veri saklama ve manipülasyonu
  • Veritabanı bağlantı havuzu
  • Feature engineering ve EDA(Exploratory Data Analysis)
  • ML modellerin belirlenmesi, parametre güncellemeleri ve karşılatırma

2020-03-14

ML modellemesi ile güneş enerjisi üretim tahmini oluşturmak

Önceki paylaşımlarımın birinde veri analizi,görselleştirme ve temizlenmesi konularına değindim, şimdiki blog paylaşımımda ise biraz ileriye giderek EDA (Explotary Data Analysis) ve ML (tr. Makine Öğrenimi) model kurulumuna başvuracağım.
Bu aşamalara gelmeden önce kullanılacak olan veriyi ve çözüm bulmayı hedeflediğimiz soruna bakalım. Vakamızda iki veriseti kullanıldı, ilki yıllara göre rüzgar ve güneş enerji üretim değerlerini ve benzer bilgiler, diğeri ise hava tahminlerini ve geçmişlerini yansıtmaktadır. Amacımız, hava durumu tahminlerini dikkate alarak güneş enerji tüketimi ve akabinde üretimini öngörmektir.

2020-03-03

Some useful py notes

import random

blogpost=random.some_py_notes ;)

Several useful py notes will be shared in this post: generators & pickle.

2020-02-29

Python Postgres Connection Pool

Python aracılığı ile PostgreSQL`den veri alma ve ver yükleme işlemleri için oluşturduğum connection pool scriptlerini inceleyebilirsiniz. Kütüphane olarak psycopg2`yi kullandım. Github repomdan aşağıdaki bilgilere ulaşabilirsiniz: https://github.com/baylarov/pyPostgres

2020-02-28

EDA ile suç oranları analizi

Veri dünyasına giriş yapanların öğrenmesi gereken konuların arasında yer almaktadır veri işleme ve görselleştirme adımları. Bu aşamada yapılması gereken detaylı adımlar bulunmaktadır, fakat bu paylaşımımda genel bilgileri ileterek sizleri bilgilendireceğim.
Veri işleme aşaması SQL sorgu dilinde de yapılabilir, ama çoğu adımda yetersiz olduğu için Python gibi geniş veri işleme kütüphanelerine sahip programlama dili tercih nedenidir. R istatistik programlama dilini bu işlemler için alternatif olarak düşünebiliriz.
Kullanacağım veri seti Chicago Polis Departmanının 2016-2017 seneleri aralığında paylaşmış olduğu kayıtları içeriyor. Veri setimizde işlenen suç vakalarına ait rapor kodu, zaman, coğrafi bilgiler, tür gibi bilgiler mevcuttur.

2017-02-10

Storing and Querying XML Data in SQL Server

Using Transact-SQL for XML

Using mode queries in TSQL for XML allows server to convert result set to related XML formats.Four modes are available for this process:

  • RAW - converts each row and gives XML format related with each row, could get 'element' command
  • AUTO - same as RAW format, however has less flexibility
  • EXPLICIT - much more complexity in queries, PATH way is recommended
  • PATH - more flexibility and simplicity,used instead of previous mode
For more practice you can test it on Management Studio:

2017-02-03

Microsoft Machine Learning

In December 2016 Microsoft R Server 9.0 was released, and several additional big-data tools and features have been upgraded with new version, including brand new R package for Machine Learning — Microsoft ML.To handle large corpus of text data and high-dimensional categorical data mentioned package has more functionality, from speed-performance and scalability aspect too.

2017-02-02

Designing and implementing views

Reducing the complexity and facilitating the readability of queries are realizing by implementing views. Possible to name it as 'virtual table' too. From both performance and complexity aspects, it allows us to turn situation to an advantageous side. Let's look at where to use views:in calling the queries without any executing of table, in giving permission to any user to view specific column,data, in boosting the performance mainly.
From security aspect, let's assume that person A gives table permission to person B, except displaying employees' salary info.Here A prefer to create a view and grant B a permission to access just only view, not whole table.

2017-01-26

Executing Plan in SQL Server

Observing performance tuning, reducing or boosting the cost are displayed by executing plan.It allows us to see big picture how system works in background. Primarily it is needed to understand how a query is executed by server.Steps:
  1. Parse - parsing whole statement whether it has mistake in it or not.
  2. Resolve - getting info about tables,views so on.
  3. Optimize - deciding how to execute the query more efficiently
  4. Compile - creating executing plan about whole process
  5. Execution - final point to realize the execution plan
All implemented execution plans are stored in Plan Cache, to prevent next queries' execution plans to reduce the performance by reading related plans throughout disc.