Mühendislik Data Depos'taki Spark SQL'e Giriş

Mühendislik verileri depolar, yapılandırılmış ve yarı yapılandırılmış veri yığınları sensörleri, kontrol sistemleri, üretim ekipmanları ve tasarım simülasyonları tarafından üretilen büyük miktardaki tutarlar depolar, çok sayıdaki konsolidasyonlar, zaman dizi hesaplamaları ve karmaşık filtreleme koşulları ile ilgili olarak, bilgisayar destekli veri dönüşümleri ile ilgili geleneksel SQL motorlarını otomatik olarak optimize ederken, MapReduce bazlı çözümler bu verileri optimize eder ve uygulama zamanlarını kullanarak bu sorunları ele alır. Spark SQL, Apache Spark SQL'in dağıtılmış hesaplamalarını birleştirerek bu sorunları ele alır.

Spark SQL Nedir?

Spark SQL, Apache Spark'ın modüler bir bileşenidir ve bu da SQL ifadelerini veya DataFrame API'sini kullanarak yapılandıran bir SQL sorgusu ile ilk kez çalışır, sonra Catalyst'i uygulayın - etkili bir fiziksel plan oluşturmak için.Son uygulama Spark 1.0'da tanıtıldı ve binlerce düğüme ölçeklendirilebilir. Spark SQL verileri HDFS, Hive tabloları, Parkt dosyaları, Cassandra, JDBC kaynaklarını ve daha fazlası için de destekleyebilir.

Geniş veri toplama araçlarıyla çalışan mühendisler için veri depolama (örneğin, Parkt), ön iterasyon ve I/O'yu azaltmak için maliyet bazlı optimizasyon. büyük veri savaşları ile çalışan mühendisler için, bu, saat beklemeden önce sütunları ve sorgu tutma yeteneğinden daha hızlı faydalanıyor.

Mühendislik Data Depos için Spark SQL'in Anahtar Faydaları

Simplify Kompleksi Queries

Mühendislik sorguları genellikle boş masalardan bir araya getirmek gerektirir: ekipman girişleri, sensör okumaları, bakım kayıtları ve kalite kontrol sonuçları.Cor MapReduce veya HiveQL'daki bu tür sorgular karışıklığa ve hataya katılabilir. Spark SQL, beş veya daha büyük tablolara katılan tek bir SQL ifadesi yazmanıza izin verir, böylece pencere fonksiyonlarını ortalamaları ve filtreler için geçerlidir.

Dramatically Faster Data Processing

Spark SQL'in performansı avantajı, ekrandaki görüntüleyicileri ve TST uygulama motorundan gelir. TST, sorgu operatörlerini MapReduce kurulumuna kıyasla oldukça optimize etmek için kod nesli kullanır.Ayrıca, Spark SQL aynı veri kümesine tekrarlama işlemine izin verebilir.For example, a query datasets of sensör data can complete in minutes instead of hours while to a traditional Hive on MapReduce installation.Add, Spark SQL can cache orta DataFrames in memory, programlanabilir query dataset to run even more dataset to run even more dataset.

Birden fazla Veri Kaynağı ve Biçimleri Destekler

Mühendislik verileri depolar genellikle çeşitli kaynaklardan veri depoları: IoT cihazlarından CSV girişleri, Simülasyon yazılımından Parkt ihraç, API'lerden JSON çıktı ve Euro/ORC dosyalarından yukarı kanallarından erişmeksizin. Spark SQL, tüm bu formatlara ve birçok kişiye birleşik bir DataFrame API'si ile bağlantı kurun.You can olarak bir Parkt masasına erişim sağlar.

Mevcut BI ve Mühendislik Araçları ile bütünleşmeler

Birçok mühendislik ekibi, Masaau, Power BI veya Superset gibi iş istihbarat platformlarını kullanarak depolama verilerini ortaya koyar. Spark SQL, Python (PySpark) ile doğrudan entegre eder ve bu araçları kullanarak uyumlu hale getirir.

Nasıl Spark SQL Ortak Mühendislik Data Queries

Kompleksi Otomatik Optimizasyonla Katılır

Üretimin çalıştığı bir üretim deposu düşünün, kaliteli testler ve ekipman kalibrasyonları. Tipik bir sorgu, aİLFLT:1) masaya (önderler) katılabilir ve hafıza problemlerini önlemek için verileri manuel olarak sıralayabilirsiniz. Spark SQL's Catalystr otomatik olarak sıralamalar ve makine kimlikleri arasında seçer, o zaman birleştirici tabloya katılabilirsiniz.

Zaman serisi analizi için Pencere Fonksiyonlları

Mühendislik verileri sık sık sık sık sık tren hesaplamaları gerektirir - 7 gün hareketli ortalamaları vibrasyon okumaları veya ekipman başına gelen hataların notları. Spark SQL, her sensör için ardışık sıcaklık okumaları arasındaki farkı bulmak için: “, [[DÜcretsiz:), [[DÜyetim:)))

SELECT sensor_id, reading_time, temperature,
 temperature - LAG(temperature, 1) OVER (
 PARTITION BY sensor_id ORDER BY reading_time
 ) AS temp_change
FROM sensor_readings;

Nested Data ve Struct

Birçok mühendislik logları JSON veya euro gibi yuvalanmış formatlarda depolanır. Spark SQL, sorgulamadan önce veya ETL boru hatlarından önce doğrudan doğruya doğrulanmamış verileri sorgulayabilir. Örneğin, her satır bir algFLT:9 sütunu içeriyorsa, bu yeteneği sorgulamadan önce düzeme veya ETL boru hatlarına ihtiyacınızı ortadan kaldırabilirsiniz.

Inmemory Caching for Iterative Workloads

Mühendislik verileri analizi genellikle iteratiftir: anomalileri bulmak için bir sorgu çalıştırdıktan sonra, mühendis bu verilere belirli bir tarih aralığındaki sensör verilerinin alt setlerine kadar delmek isteyebilir, bu filtrelenen DataFrame tekrarlanan adhoc aggregations için süreyi dakikalar içinde azaltır.

Gerçek Dünya Mühendislik Data Depos'ta Vakaları Kullanıyor

IoT Sensör Data Analizi

Büyük bir endüstriyel üretici, Power tüketiminin 100 kW'ı aştığında her bir makineden 500 GB'yi toplamaktadır? Bu, Parke'deki ham okumaları ve çıkış programları arasında yer alıyor, Spark SQL'ı kullanarak, mühendisler sorgular kullanıyor: “Her makinede ortalama sıcaklık ve titreşim 100 kW'ı aştı.

Ekipman Bakım Logs

Rüzgar türbinlerinin bir filosu, kullanıcı tarafından belirlenen işlevlerin yedeklenmesi ve gerçek zamanlı tanıların değiştirilmesini sağlar. Depo, yapılandırılmış loglar (örneğin, teknisyen ID) metin olarak depolanan yorumlarla birleştirir. Spark SQL'in Python veya Scala mühendislerinin yorumlarından anahtar kelimeler çıkarmasını sağlar ve bunları yapılandırılmış etkinliklerle birleştirebilirler. Örneğin, “seçmiş değiştirme” 30 gün içinde takip eden bayrak türbinlerine “parçalı bir “parçalışlama” ile kayıt yaptırabilirler.

Simülasyon Çıktı Analizi

Tasarım takımları bilgisayarlı sıvı dinamikleri (CFD) simülasyonlar, ağ verileri ve ölçeklendirme sonuçları içeren birçok küçük dosyayı çalıştırıyor.Bu dosyalar sıkıştırılmış JSON formatındaki depoya yüklenir. Spark SQL's JSON desteği ve predicate pushdown sadece ilgili simülasyonlar binlerce simülasyonda bilgi işlem yapmadan çalışır. -e.g., “Sağda 15 derece aştıkları tasarımlara ortalama kat daha fazla yükleniyor ve Reynolds sayısı 1e6'nın üzerindeydi.

Karşılaştırma: Spark SQL vs. Traditional Hive on MapReduce

Spark SQL'den önce, birçok mühendislik ekibi her aşama arasında Hive'i MapReduce for SQL sorguları için MapReduce'yi kullanarak takip etti, I/O. Analitik sorgular için, altta yatan MapReduce execution modeli, her aşamadan satır ara sonuçlardan yüksek çözünürlükte, Spark SQL'in dinamikleri optimize etti, Hive'nin özellikle de daha az sayıda agresyon ve katılmalarını içeren daha hızlı.

Bununla birlikte, Spark SQL tüm Hive iş yükleri için bir damla yedek değildir. Hive ACID işlemleri ve katı RDBMS özellikleri (yabancı anahtarlar gibi) Spark SQL tamamen destek değildir.

BI Tools ve Workflows ile entegrasyon

Spark SQL, Hive ODBC sürücüsü aracılığıyla BI araçlarına maruz kalabilir:0)Spark Thrift Server), Hive2 Mühendisleri, tabloau veya Power BI'ı Thrift sunucusuna bir Hive ODBC sürücüsü kullanarak bağlantı kurabilirler. Örneğin, çoklu fabrikalarda gerçek zamanlı veri deposu oranları gösteren bir işlem, görselleme için her beş dakika boyunca canlı panjurlar kullanarak geniş mühendislik veri setlerini genişletebilir.

Programmatik iş akışları, Spark SQL Python notları ile sorunsuz bir şekilde entegre eder (Jupyter, Zeppelin). Mühendisler bir Spark SQL sorgusu yazabilir, bir 444FLT:14) DataFrame viaurFLT:15) ve sonra sonuçları makine öğrenme kütüphaneleri (Jupyter, Zeppelin).

Data Depos'ta Spark SQL için Performans Optimizasyonu İpuçları

Katılımcılık ve Kovalama

Parkt veya ORC'de verileri depolarken, yüksek kartel sütunlar tarafından bölme, masayı sabit sayıda kovalama (örneğin, 64) gibi.

Caching Stratejik Olarak Kullanın

Sadece birden fazla kez yeniden kullandığınız veriler için, bir temel gerçek tablo birkaç alt sorguda kullanılırsa, okuduktan sonra önbellek kullanın.UseENFLT:20). hafıza kullanımı için çok büyük ve sadece bir kez kullanılan kasetlerden kaçının, hafızanın yararı olarak.

Enable Adaptive Query Execution (AQE)

Spark 3.0, AQE'yi, önceden belirlenmiş verilere göre sorgu planını yeniden optimize eden AQE'yi tanıttı.AQE, manuel ayar olmadan önemli ölçüde stabiliteyi artırabilir.

Yanar Biçimleri ve Predicate Pushdown

Her zaman köşeli formatlarda (Parquet veya ORC) CSV veya JSON. Spark SQL yalnızca sorguda referansları okur ve tarihle eşleşmeyen tüm satır grupları atacaktır. Örneğin, a query likeENFLT:23) sadece [[Şamp.

Tune Shuffle Partitions

Spark SQL varsayılanleri 200 shuffle bölmeye kadar, bu çok büyük veri setleri veya küçük olanlar için çok düşük olabilir.Inglish using ESFLT:27) kümedeki çekirdeklerin sayısını 2-3x olarak kullanarak, ortak bir ayar 500-1000 bölümdür.

Daha Fazla Öğrenme için Dış Kaynaklar

Spark SQL'in içlerine ve en iyi uygulamalara daha derin bir şekilde atlatmak için, aşağıdaki yazar kaynakları düşünün:

  • [FONT=0]Apache Spark SQL Guide[[Dönem: 1) SQL referansı, konfigürasyon ve örneklerle Resmi belgeler.
  • [FONT=0) Databricks Blog[Döneticileri 1 ) üzerinde Catalyst Optimizer'ı (Döneticileri) kavramak için açık bir açıklama.
  • [FONT=0]Learning Spark, 2nd Edition – Spark SQL, DataFrames ve performans ayarını ayrıntılı olarak kapsayan kitap.

Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç

Spark SQL, modern mühendislik veri depolarının temel taşı haline geldi. Yüksek seviyeli bir declaratif arayüz sağlayarak karmaşık sorguları basitleştirir ve Spark’ın dağıtılmış veri kaynaklarını ele geçirirken, Spark SQL, veri tabanlı kararlara katılmak için mühendislik takımlarından ve her zamankinden daha güvenilir bir şekilde yararlanmaya devam eder.Veri hacmi düşük seviyeli paralellik veya manuel optimizasyon ile güreşçiliği yapmadan, yalnızca BI araçlarını entegre ederek ve geniş bir veri mühendisini destekler.