Ayıklama, dönüştürme ve yükleme (ETL)Extract, transform, and load (ETL)

Kuruluşların karşılaştığı yaygın bir sorun, birden çok biçimde birden çok kaynaktan veri toplama ve bir veya daha fazla veri deposuna taşıma yöntemidir.A common problem that organizations face is how to gather data from multiple sources, in multiple formats, and move it to one or more data stores. Hedef kaynakla aynı veri deposu türü olmayabilir ve genellikle biçim farklıdır veya verilerin son hedefine yüklemeden önce şekillendirilmesi veya temizlenmesi gerekir.The destination may not be the same type of data store as the source, and often the format is different, or the data needs to be shaped or cleaned before loading it into its final destination.

Bu zorlukların üstesinden gelinmeye yardımcı olmak için yıllar içinde çeşitli araçlar, hizmetler ve süreçler geliştirilmiştir.Various tools, services, and processes have been developed over the years to help address these challenges. Kullanılan işlem ne olursa olsun, çalışmayı koordine etmek ve veri ardışık düzeniçinde bir miktar veri dönüşümü uygulamak için ortak bir ihtiyaç vardır.No matter the process used, there is a common need to coordinate the work and apply some level of data transformation within the data pipeline. Aşağıdaki bölümlerde, bu görevleri gerçekleştirmek için kullanılan yaygın yöntemler vurgulanır.The following sections highlight the common methods used to perform these tasks.

Ayıklama, dönüştürme ve yükleme (ETL) işlemiExtract, transform, and load (ETL) process

Ayıklama, dönüştürme ve yükleme (ETL), çeşitli kaynaklardan veri toplamak, verileri iş kurallarına göre dönüştürmek ve hedef veri deposuna yüklemek için kullanılan bir veri ardışık hattıdır.Extract, transform, and load (ETL) is a data pipeline used to collect data from various sources, transform the data according to business rules, and load it into a destination data store. ETL'deki dönüşüm çalışması özel bir altyapıda gerçekleşir ve genellikle dönüştürülürken ve nihayetinde hedefine yüklenirken verileri geçici olarak tutmak için hazırlama tablolarının kullanılmasını içerir.The transformation work in ETL takes place in a specialized engine, and often involves using staging tables to temporarily hold data as it is being transformed and ultimately loaded to its destination.

Gerçekleşen veri dönüşümü genellikle filtreleme, sıralama, toplama, veri birleştirme, verileri temizleme, çoğaltma ve verileri doğrulama gibi çeşitli işlemleri içerir.The data transformation that takes place usually involves various operations, such as filtering, sorting, aggregating, joining data, cleaning data, deduplicating, and validating data.

Ayıklama-dönüştürme-yükleme (ETL) işlemi

Genellikle, üç ETL aşamaları zaman kazanmak için paralel olarak çalıştırılır.Often, the three ETL phases are run in parallel to save time. Örneğin, veriler ayıklanırken, bir dönüştürme işlemi zaten alınan veriler üzerinde çalışıyor olabilir ve yüklemeye hazırlayabilir ve yükleme işlemi tüm çıkarma işleminin tamamlanmasını beklemek yerine hazırlanan veriler üzerinde çalışmaya başlayabilir.For example, while data is being extracted, a transformation process could be working on data already received and prepare it for loading, and a loading process can begin working on the prepared data, rather than waiting for the entire extraction process to complete.

İlgili Azure hizmeti:Relevant Azure service:

Diğer araçlar:Other tools:

Ayıkla, yükle ve dönüştür (ELT)Extract, load, and transform (ELT)

Ayıklama, yükleme ve dönüştürme (ELT), yalnızca dönüşümün gerçekleştiği yerde ETL'den farklıdır.Extract, load, and transform (ELT) differs from ETL solely in where the transformation takes place. ELT ardışık alanında dönüşüm hedef veri deposunda gerçekleşir.In the ELT pipeline, the transformation occurs in the target data store. Ayrı bir dönüştürme motoru kullanmak yerine, hedef veri deposunun işleme yetenekleri verileri dönüştürmek için kullanılır.Instead of using a separate transformation engine, the processing capabilities of the target data store are used to transform data. Bu, dönüşüm altyapısını ardışık işlemden kaldırarak mimariyi kolaylaştırır.This simplifies the architecture by removing the transformation engine from the pipeline. Bu yaklaşımın bir diğer yararı da hedef veri deposunun ölçekletilmesinin ELT boru hattı performansını da ölçeklendirmesidir.Another benefit to this approach is that scaling the target data store also scales the ELT pipeline performance. Ancak, ELT yalnızca hedef sistem verileri verimli bir şekilde dönüştürecek kadar güçlü olduğunda iyi çalışır.However, ELT only works well when the target system is powerful enough to transform the data efficiently.

Ayıklama-Yük-Dönüştürme (ELT) işlemi

ELT için tipik kullanım örnekleri büyük veri aleminde yer almakta.Typical use cases for ELT fall within the big data realm. Örneğin, kaynak verilerin tümünü Hadoop dağıtılmış dosya sistemi (HDFS) veya Azure Veri Gölü Deposu gibi ölçeklenebilir depolamadaki düz dosyalara ayıklayarak başlayabilirsiniz.For example, you might start by extracting all of the source data to flat files in scalable storage such as Hadoop distributed file system (HDFS) or Azure Data Lake Store. Daha sonra kaynak verileri sorgulamak için Spark, Hive veya PolyBase gibi teknolojiler kullanılabilir.Technologies such as Spark, Hive, or PolyBase can then be used to query the source data. ELT ile anahtar nokta, dönüşümü gerçekleştirmek için kullanılan veri deposu, verilerin sonunda tüketilen aynı veri deposu olmasıdır.The key point with ELT is that the data store used to perform the transformation is the same data store where the data is ultimately consumed. Bu veri deposu, verileri kendi özel depolama alanına yüklemek yerine doğrudan ölçeklenebilir depolamadan okur.This data store reads directly from the scalable storage, instead of loading the data into its own proprietary storage. Bu yaklaşım, büyük veri kümeleri için zaman alıcı bir işlem olabilir ETL, mevcut veri kopyalama adımı atlar.This approach skips the data copy step present in ETL, which can be a time consuming operation for large data sets.

Uygulamada, hedef veri deposu Hadoop kümesi (Hive veya Spark kullanarak) veya Azure Synapse Analytics kullanan bir veri ambarıdır.In practice, the target data store is a data warehouse using either a Hadoop cluster (using Hive or Spark) or a Azure Synapse Analytics. Genel olarak, bir şema sorgu zamanında düz dosya verilerinin üzerine yerlenir ve bir tablo olarak depolanır, veri deposundaki diğer tablo gibi verilerin sorgulanmasını sağlar.In general, a schema is overlaid on the flat file data at query time and stored as a table, enabling the data to be queried like any other table in the data store. Bunlar dış tablolar olarak adlandırılır, çünkü veriler veri deposunun kendisi tarafından yönetilen depolamada değil, bazı harici ölçeklenebilir depolamada yer alır.These are referred to as external tables because the data does not reside in storage managed by the data store itself, but on some external scalable storage.

Veri deposu yalnızca verilerin şemasını yönetir ve okunan şemayı uygular.The data store only manages the schema of the data and applies the schema on read. Örneğin, Hive kullanan bir Hadoop kümesi, veri kaynağının HDFS'deki bir dosya kümesine giden bir yol olduğu bir Hive tablosunu açıklar.For example, a Hadoop cluster using Hive would describe a Hive table where the data source is effectively a path to a set of files in HDFS. Azure Synapse'de, PolyBase veritabanında harici olarak depolanan verilere karşı bir tablo oluşturarak aynı sonucu — elde edebilir.In Azure Synapse, PolyBase can achieve the same result — creating a table against data stored externally to the database itself. Kaynak veriler yüklendikten sonra, dış tablolarda bulunan veriler veri deposunun yetenekleri kullanılarak işlenebilir.Once the source data is loaded, the data present in the external tables can be processed using the capabilities of the data store. Büyük veri senaryolarında bu, veri deposunun verileri daha küçük parçalara ayıran ve parçaların işlenmesini paralel olarak birden çok makineye dağıtan büyük ölçüde paralel işleme (MPP) yeteneğine sahip olması gerektiği anlamına gelir.In big data scenarios, this means the data store must be capable of massively parallel processing (MPP), which breaks the data into smaller chunks and distributes processing of the chunks across multiple machines in parallel.

ELT ardışık boru hattının son aşaması genellikle kaynak verileri desteklenmesi gereken sorgu türleri için daha verimli bir son biçime dönüştürmektir.The final phase of the ELT pipeline is typically to transform the source data into a final format that is more efficient for the types of queries that need to be supported. Örneğin, veriler bölümlenmiş olabilir.For example, the data may be partitioned. Ayrıca, ELT, satır ayarı yapılan verileri sütun lu bir biçimde depolayan ve en iyi duruma getirilmiş dizin oluşturma sağlayan Parke gibi optimize edilmiş depolama biçimleri kullanabilir.Also, ELT might use optimized storage formats like Parquet, which stores row-oriented data in a columnar fashion and provides optimized indexing.

İlgili Azure hizmeti:Relevant Azure service:

Diğer araçlar:Other tools:

Veri akışı ve kontrol akışıData flow and control flow

Veri ardışık lıkları bağlamında, denetim akışı bir dizi görevin düzenli olarak işlenmesini sağlar.In the context of data pipelines, the control flow ensures orderly processing of a set of tasks. Bu görevlerin doğru işleme sırasını zorlamak için öncelik kısıtlamaları kullanılır.To enforce the correct processing order of these tasks, precedence constraints are used. Aşağıdaki resimde gösterildiği gibi, bu kısıtlamaları iş akışı diyagramında bağlayıcılar olarak düşünebilirsiniz.You can think of these constraints as connectors in a workflow diagram, as shown in the image below. Her görevin başarı, başarısızlık veya tamamlama gibi bir sonucu vardır.Each task has an outcome, such as success, failure, or completion. Sonraki herhangi bir görev, selefi bu sonuçlardan biriyle tamamlanana kadar işleme başlatmaz.Any subsequent task does not initiate processing until its predecessor has completed with one of these outcomes.

Denetim akışları bir görev olarak veri akışlarını yürütür.Control flows execute data flows as a task. Veri akışı görevinde, veriler bir kaynaktan ayıklanır, dönüştürülür veya veri deposuna yüklenir.In a data flow task, data is extracted from a source, transformed, or loaded into a data store. Bir veri akışı görevinin çıktısı bir sonraki veri akışı görevine giriş olabilir ve veri akışları paralel olarak çalıştırılabilir.The output of one data flow task can be the input to the next data flow task, and data flows can run in parallel. Denetim akışlarından farklı olarak, veri akışındaki görevler arasında kısıtlamalar ekleyemezsiniz.Unlike control flows, you cannot add constraints between tasks in a data flow. Ancak, her görev tarafından işlenen verileri gözlemlemek için bir veri görüntüleyici ekleyebilirsiniz.You can, however, add a data viewer to observe the data as it is processed by each task.

Veri Akışı Bir Kontrol Akışı içinde görev olarak yürütülmektedir

Yukarıdaki diyagramda, kontrol akışı içinde birden fazla görev vardır ve bunlardan biri veri akışı görevidir.In the diagram above, there are several tasks within the control flow, one of which is a data flow task. Görevlerden biri bir kapsayıcının içine yerleştirilir.One of the tasks is nested within a container. Kapsayıcılar, bir çalışma birimi sağlayarak görevlere yapı sağlamak için kullanılabilir.Containers can be used to provide structure to tasks, providing a unit of work. Bu tür bir örnek, bir klasördeki veya veritabanı deyimlerindeki dosyalar gibi koleksiyondaki öğeleri yinelemektir.One such example is for repeating elements within a collection, such as files in a folder or database statements.

İlgili Azure hizmeti:Relevant Azure service:

Diğer araçlar:Other tools:

Teknoloji seçimleriTechnology choices

Sonraki adımlarNext steps

Aşağıdaki başvuru mimarileri Azure'da uçuca ELT ardışık hatlarını gösterir:The following reference architectures show end-to-end ELT pipelines on Azure: