{"id":30913,"date":"2025-10-03T10:31:46","date_gmt":"2025-10-03T07:31:46","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/etli-kolaylastirmak-aws-glue-ile-cok-kaynakli-veri-entegrasyonu\/"},"modified":"2025-10-03T10:31:46","modified_gmt":"2025-10-03T07:31:46","slug":"etli-kolaylastirmak-aws-glue-ile-cok-kaynakli-veri-entegrasyonu","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/etli-kolaylastirmak-aws-glue-ile-cok-kaynakli-veri-entegrasyonu\/","title":{"rendered":"ETL&#8217;i Kolayla\u015ft\u0131rmak: AWS Glue ile \u00c7ok Kaynakl\u0131 Veri Entegrasyonu"},"content":{"rendered":"<p>G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla de\u011fi\u015fen i\u015f d\u00fcnyas\u0131nda, farkl\u0131 kaynaklardan gelen verileri bir araya getirmek ve analiz edilebilir hale getirmek i\u015fletmeler i\u00e7in hayati \u00f6nem ta\u015f\u0131maktad\u0131r. Ancak bu karma\u015f\u0131k veri entegrasyon s\u00fcre\u00e7leri genellikle zaman al\u0131c\u0131 ve maliyetli olabilir. \u0130\u015fte tam bu noktada, AWS Glue devreye girerek, veri m\u00fchendisli\u011fi s\u00fcre\u00e7lerinizi basitle\u015ftiren ve otomatikle\u015ftiren bulut tabanl\u0131 bir ETL hizmeti sunar. Bu makale, \u00e7ok kaynakl\u0131 verileri AWS Glue ile nas\u0131l kolayca entegre edebilece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131klayacak, ger\u00e7ek d\u00fcnya senaryolar\u0131yla zenginle\u015ftirilmi\u015f kapsaml\u0131 bir rehber niteli\u011findedir.<\/p>\n<p>\u00c7a\u011f\u0131m\u0131zda i\u015fletmeler, operasyonel veritabanlar\u0131, CRM sistemleri, ERP platformlar\u0131, web analiz ara\u00e7lar\u0131, IoT cihazlar\u0131 ve sosyal medya gibi say\u0131s\u0131z kaynaktan s\u00fcrekli olarak veri \u00fcretmektedir. Bu farkl\u0131 yap\u0131daki verilerin (yap\u0131land\u0131r\u0131lm\u0131\u015f, yar\u0131 yap\u0131land\u0131r\u0131lm\u0131\u015f, yap\u0131land\u0131r\u0131lmam\u0131\u015f) tek bir yerde toplanmas\u0131, temizlenmesi, d\u00f6n\u00fc\u015ft\u00fcr\u00fclmesi ve analize haz\u0131r hale getirilmesi, yani ETL (Extract, Transform, Load) s\u00fcreci, geleneksel y\u00f6ntemlerle olduk\u00e7a zorlay\u0131c\u0131 olabilir. Her bir veri kayna\u011f\u0131n\u0131n kendine \u00f6zg\u00fc format\u0131, \u015femas\u0131 ve eri\u015fim protokolleri vard\u0131r. Ayr\u0131ca, veri hacminin s\u00fcrekli artmas\u0131, mevcut altyap\u0131lar \u00fczerinde ciddi performans ve \u00f6l\u00e7eklenebilirlik sorunlar\u0131na yol a\u00e7abilir. Bu karma\u015f\u0131kl\u0131k, veri odakl\u0131 kararlar almay\u0131 geciktirir ve hatta hatal\u0131 kararlara neden olabilir.<\/p>\n<p>Geleneksel ETL \u00e7\u00f6z\u00fcmleri genellikle y\u00fcksek ba\u015flang\u0131\u00e7 maliyetleri, uzun kurulum s\u00fcreleri ve uzmanl\u0131k gerektiren y\u00f6netim s\u00fcre\u00e7leri i\u00e7erir. \u0130\u015fletmeler, bu y\u00fckleri azaltman\u0131n ve veri altyap\u0131lar\u0131n\u0131 modernle\u015ftirmenin yollar\u0131n\u0131 aramaktad\u0131r. AWS Glue, bu zorluklar\u0131n \u00fcstesinden gelmek i\u00e7in tasarlanm\u0131\u015f, tam y\u00f6netilen, sunucusuz bir ETL hizmetidir. Veri m\u00fchendislerinin ve analistlerin, altyap\u0131 y\u00f6netimiyle u\u011fra\u015fmadan, verilerini daha h\u0131zl\u0131 ve verimli bir \u015fekilde haz\u0131rlamalar\u0131na olanak tan\u0131r. \u00c7ok kaynakl\u0131 veri entegrasyonunu otomatikle\u015ftiren ve basitle\u015ftiren Glue, \u00f6zellikle Amazon S3, RDS, Redshift gibi AWS hizmetleriyle sorunsuz entegrasyonu sayesinde b\u00fcy\u00fck veri g\u00f6l\u00fc ve veri ambar\u0131 \u00e7\u00f6z\u00fcmlerinin omurgas\u0131n\u0131 olu\u015fturabilir.<\/p>\n<h2>ETL ve AWS Glue&#8217;un Temelleri: Karma\u015f\u0131k Veri S\u00fcre\u00e7leri Nas\u0131l Basitle\u015ftirilir?<\/h2>\n<p>Veri odakl\u0131 karar alma s\u00fcre\u00e7leri i\u00e7in vazge\u00e7ilmez olan ETL (Extract, Transform, Load) s\u00fcre\u00e7leri, verinin de\u011ferini ortaya \u00e7\u0131karmak i\u00e7in at\u0131lmas\u0131 gereken en kritik ad\u0131mlardan biridir. Ancak bu s\u00fcre\u00e7ler, farkl\u0131 veri kaynaklar\u0131ndan gelen heterojen verilerin bir araya getirilmesi, standartla\u015ft\u0131r\u0131lmas\u0131 ve analize uygun hale getirilmesi gerekti\u011finde olduk\u00e7a karma\u015f\u0131k hale gelebilir. Gelin, ETL&#8217;in ne oldu\u011funu ve AWS Glue&#8217;un bu s\u00fcre\u00e7leri nas\u0131l basitle\u015ftirdi\u011fini detayl\u0131ca inceleyelim.<\/p>\n<h3>ETL Nedir ve Neden \u00c7ok Kaynakl\u0131 Entegrasyon Zorlay\u0131c\u0131d\u0131r?<\/h3>\n<p>ETL, &#8220;Extract (\u00c7\u0131kar), Transform (D\u00f6n\u00fc\u015ft\u00fcr), Load (Y\u00fckle)&#8221; kelimelerinin ba\u015f harflerinden olu\u015fan bir veri entegrasyon s\u00fcrecidir. Bu s\u00fcrecin her a\u015famas\u0131 belirli g\u00f6revleri i\u00e7erir:<\/p>\n<ol>\n<li><strong>Extract (\u00c7\u0131kar):<\/strong> \u00c7e\u015fitli kaynak sistemlerden (veritabanlar\u0131, CSV dosyalar\u0131, API&#8217;ler, ak\u0131\u015f verileri vb.) verinin \u00e7ekilmesi a\u015famas\u0131d\u0131r. Bu a\u015famada temel zorluk, her kayna\u011f\u0131n kendine \u00f6zg\u00fc formatlara ve eri\u015fim y\u00f6ntemlerine sahip olmas\u0131d\u0131r.<\/li>\n<li><strong>Transform (D\u00f6n\u00fc\u015ft\u00fcr):<\/strong> \u00c7\u0131kar\u0131lan ham verinin hedeflenen sistemin format\u0131na ve gereksinimlerine uygun hale getirilmesi a\u015famas\u0131d\u0131r. Bu, veri temizli\u011fi (eksik veya hatal\u0131 verilerin d\u00fczeltilmesi), veri zenginle\u015ftirme (ek bilgilerle birle\u015ftirme), veri birle\u015ftirme (farkl\u0131 tablolar\u0131 veya kaynaklar\u0131 bir araya getirme), veri normalizasyonu (standart formata getirme) ve agregasyon (\u00f6zetleme) gibi i\u015flemleri i\u00e7erir. Bu a\u015fama, genellikle ETL s\u00fcrecinin en karma\u015f\u0131k ve zaman al\u0131c\u0131 k\u0131sm\u0131d\u0131r.<\/li>\n<li><strong>Load (Y\u00fckle):<\/strong> D\u00f6n\u00fc\u015ft\u00fcr\u00fclm\u00fc\u015f verinin hedeflenen depolama sistemine (veri ambar\u0131, veri g\u00f6l\u00fc, operasyonel veri ma\u011fazas\u0131 vb.) aktar\u0131lmas\u0131 a\u015famas\u0131d\u0131r. Bu a\u015famada, verinin hedef sisteme h\u0131zl\u0131 ve tutarl\u0131 bir \u015fekilde yaz\u0131lmas\u0131 \u00f6nemlidir.<\/li>\n<\/ol>\n<p>\u00c7ok kaynakl\u0131 veri entegrasyonu, bu ad\u0131mlar\u0131 birden fazla, genellikle uyumsuz veri kayna\u011f\u0131 i\u00e7in tekrarlamak anlam\u0131na gelir. Her yeni veri kayna\u011f\u0131, yeni entegrasyon kodlar\u0131, \u015fema e\u015fle\u015ftirmeleri ve d\u00f6n\u00fc\u015f\u00fcm mant\u0131klar\u0131 gerektirir. Bu durum, veri m\u00fchendisli\u011fi ekipleri i\u00e7in s\u00fcrekli bir bak\u0131m ve geli\u015ftirme y\u00fck\u00fc yarat\u0131r. Veri hacminin artmas\u0131yla performans darbo\u011fazlar\u0131 ya\u015fanabilir, altyap\u0131 maliyetleri y\u00fckselir ve y\u00f6netimi zorla\u015f\u0131r. Ayr\u0131ca, veri kalitesini ve tutarl\u0131l\u0131\u011f\u0131n\u0131 sa\u011flamak da b\u00fcy\u00fck bir meydan okumad\u0131r.<\/p>\n<h3>AWS Glue: Veri Kataloglama ve \u0130\u015flem G\u00fcc\u00fc Aras\u0131ndaki K\u00f6pr\u00fc<\/h3>\n<p>AWS Glue, bu zorluklar\u0131n \u00fcstesinden gelmek i\u00e7in tasarlanm\u0131\u015f, tam y\u00f6netilen, sunucusuz bir ETL hizmetidir. Temel olarak \u00fc\u00e7 ana bile\u015fenden olu\u015fur:<\/p>\n<ul>\n<li><strong>AWS Glue Data Catalog:<\/strong> Veri kaynaklar\u0131n\u0131z\u0131n metadata deposudur. Veritaban\u0131 tablolar\u0131n\u0131n, \u015femalar\u0131n, konumlar\u0131n ve di\u011fer ilgili bilgilerin merkezi bir deposunu sa\u011flar. Glue Crawler&#8217;lar bu katalogu otomatik olarak g\u00fcnceller ve Pop\u00fcler veri i\u015fleme servisleri (Amazon Athena, Amazon Redshift Spectrum, EMR vb.) ile uyumludur. Bu, verinizi ke\u015ffetmeyi ve sorgulamay\u0131 inan\u0131lmaz derecede kolayla\u015ft\u0131r\u0131r.<\/li>\n<li><strong>Glue Crawlers:<\/strong> Veri kaynaklar\u0131n\u0131z\u0131 (Amazon S3 klas\u00f6rleri, RDS veritabanlar\u0131 gibi) otomatik olarak tarayan ve \u015femalar\u0131n\u0131 ke\u015ffeden programlard\u0131r. Bulduklar\u0131 \u015femay\u0131 ve metadata bilgilerini Glue Data Catalog&#8217;a yazarlar. Bu sayede, verilerinizin yap\u0131s\u0131n\u0131 manuel olarak tan\u0131mlama ihtiyac\u0131n\u0131 ortadan kald\u0131r\u0131r ve s\u00fcrekli de\u011fi\u015fen \u015femalar\u0131 otomatik olarak g\u00fcncelleyebilirler.<\/li>\n<li><strong>Glue Jobs:<\/strong> ETL i\u015f mant\u0131\u011f\u0131n\u0131z\u0131 y\u00fcr\u00fcten sunucusuz Apache Spark veya Python tabanl\u0131 i\u015flerdir. AWS Glue, bu i\u015fleri Spark k\u00fcmelerinde otomatik olarak y\u00f6netir ve \u00f6l\u00e7eklendirir. Veri temizleme, d\u00f6n\u00fc\u015ft\u00fcrme, birle\u015ftirme, zenginle\u015ftirme gibi t\u00fcm transformasyon ad\u0131mlar\u0131n\u0131 burada PySpark veya Python dilleriyle kodlayabilirsiniz. Geli\u015ftirme kolayl\u0131\u011f\u0131 i\u00e7in g\u00f6rsel bir aray\u00fcz olan AWS Glue Studio&#8217;yu da kullanabilirsiniz.<\/li>\n<\/ul>\n<p>AWS Glue&#8217;un sunucusuz mimarisi sayesinde, altyap\u0131 sa\u011flama, yap\u0131land\u0131rma ve \u00f6l\u00e7eklendirme gibi operasyonel y\u00fcklerle u\u011fra\u015fmak zorunda kalmazs\u0131n\u0131z. Sadece kulland\u0131\u011f\u0131n\u0131z kaynaklar i\u00e7in \u00f6deme yapars\u0131n\u0131z, bu da maliyet etkinli\u011fi sa\u011flar. B\u00f6ylece veri m\u00fchendisleri, altyap\u0131 y\u00f6netimi yerine veri mant\u0131\u011f\u0131na odaklanabilir, \u00e7ok kaynakl\u0131 veri entegrasyonunu h\u0131zland\u0131rabilir ve karma\u015f\u0131k s\u00fcre\u00e7leri \u00f6nemli \u00f6l\u00e7\u00fcde basitle\u015ftirebilirler.<\/p>\n<div class=\"expert-tip\" style=\"padding: 15px; margin: 20px 0; border-left: 5px solid #007bff; background-color: #e9f5ff; font-style: italic;\">\n  Uzman \u0130pucu: Glue Data Catalog&#8217;un bir di\u011fer g\u00fcc\u00fc, farkl\u0131 veri i\u015fleme servisleri aras\u0131nda tutarl\u0131 bir \u015fema tan\u0131m\u0131 sunmas\u0131d\u0131r. Bu, veri g\u00f6l\u00fcn\u00fczdeki verilere Athena veya Redshift Spectrum \u00fczerinden eri\u015firken \u015fema uyumsuzluklar\u0131 ya\u015faman\u0131z\u0131 engeller. Her zaman g\u00fcncel ve do\u011fru metadata ile \u00e7al\u0131\u015f\u0131rs\u0131n\u0131z.\n<\/div>\n<h2>AWS Glue ile \u00c7ok Kaynakl\u0131 Veri Entegrasyonu: Ad\u0131m Ad\u0131m Uygulama Rehberi<\/h2>\n<p>\u015eimdi teoriden prati\u011fe ge\u00e7elim ve AWS Glue&#8217;u kullanarak farkl\u0131 veri kaynaklar\u0131ndan gelen verileri nas\u0131l entegre edebilece\u011finizi ad\u0131m ad\u0131m g\u00f6relim. Bu b\u00f6l\u00fcmde, veri kaynaklar\u0131n\u0131 tan\u0131mlama, ba\u011flant\u0131 kurma ve Glue Crawlers ile otomatik \u015fema ke\u015ffi yapma s\u00fcre\u00e7lerine odaklanaca\u011f\u0131z. Amac\u0131m\u0131z, da\u011f\u0131n\u0131k haldeki veriyi, analize haz\u0131r, merkezi bir depolama alan\u0131na ta\u015f\u0131mak i\u00e7in bir temel olu\u015fturmakt\u0131r.<\/p>\n<h3>Veri Kaynaklar\u0131n\u0131 Tan\u0131mlama ve Ba\u011flant\u0131 Kurma: \u0130lk Ad\u0131mlar Nelerdir?<\/h3>\n<p>\u00c7ok kaynakl\u0131 veri entegrasyonu projesine ba\u015flamadan \u00f6nce, entegre etmek istedi\u011finiz veri kaynaklar\u0131n\u0131 net bir \u015fekilde belirlemeniz gerekir. Bu kaynaklar genellikle \u015funlar\u0131 i\u00e7erebilir:<\/p>\n<ul>\n<li><strong>\u0130li\u015fkisel Veritabanlar\u0131:<\/strong> Amazon RDS (MySQL, PostgreSQL, Oracle, SQL Server), Amazon Aurora, kendi bar\u0131nd\u0131rd\u0131\u011f\u0131n\u0131z veritabanlar\u0131.<\/li>\n<li><strong>Nesne Depolama Alanlar\u0131:<\/strong> Amazon S3 (CSV, JSON, Parquet, ORC dosyalar\u0131).<\/li>\n<li><strong>NoSQL Veritabanlar\u0131:<\/strong> Amazon DynamoDB.<\/li>\n<li><strong>Ak\u0131\u015f Veri Kaynaklar\u0131:<\/strong> Amazon Kinesis, Apache Kafka.<\/li>\n<li><strong>Di\u011fer Veri Depolar\u0131:<\/strong> Amazon Redshift, Elasticsearch vb.<\/li>\n<\/ul>\n<p>Her bir veri kayna\u011f\u0131 i\u00e7in AWS Glue&#8217;un bu kaynaklara eri\u015febilmesi i\u00e7in uygun ba\u011flant\u0131lar\u0131n yap\u0131land\u0131r\u0131lmas\u0131 gerekmektedir. \u00d6rne\u011fin, bir Amazon RDS veritaban\u0131na ba\u011flanmak i\u00e7in AWS Glue konsolunda &#8220;Connections&#8221; (Ba\u011flant\u0131lar) b\u00f6l\u00fcm\u00fcne giderek yeni bir JDBC ba\u011flant\u0131s\u0131 olu\u015fturmal\u0131s\u0131n\u0131z. Bu ba\u011flant\u0131; veritaban\u0131 URL&#8217;sini, kullan\u0131c\u0131 ad\u0131n\u0131, \u015fifresini ve VPC\/g\u00fcvenlik grubu ayarlar\u0131n\u0131 i\u00e7erecektir. S3 gibi kaynaklar i\u00e7in ise genellikle ek bir ba\u011flant\u0131 tan\u0131mlamas\u0131na gerek duyulmaz, \u00e7\u00fcnk\u00fc AWS hizmetleri aras\u0131nda entegrasyon daha basittir ve IAM rolleri \u00fczerinden yetkilendirme yap\u0131l\u0131r. Ba\u011flant\u0131 olu\u015ftururken, g\u00fcvenlik en \u00f6ncelikli konulardan biridir; hassas verilerinizi korumak i\u00e7in uygun IAM rolleri ve a\u011f yap\u0131land\u0131rmalar\u0131 (\u00f6rne\u011fin, VPC u\u00e7 noktalar\u0131 veya \u00f6zel alt a\u011flar) kullanmal\u0131s\u0131n\u0131z.<\/p>\n<p>\u00d6rne\u011fin, bir PostgreSQL veritaban\u0131na ba\u011flant\u0131 olu\u015fturma ad\u0131mlar\u0131 \u015funlar olabilir:<\/p>\n<ol>\n<li>AWS Glue konsolunda sol men\u00fcden &#8220;Connections&#8221; (Ba\u011flant\u0131lar) se\u00e7ene\u011fine t\u0131klay\u0131n.<\/li>\n<li>&#8220;Add connection&#8221; (Ba\u011flant\u0131 ekle) butonuna t\u0131klay\u0131n.<\/li>\n<li>Ba\u011flant\u0131ya anlaml\u0131 bir isim verin (\u00f6rne\u011fin, <code>my-rds-postgres-connection<\/code>).<\/li>\n<li>&#8220;Connection type&#8221; (Ba\u011flant\u0131 tipi) olarak <code>JDBC<\/code> se\u00e7in.<\/li>\n<li>&#8220;JDBC URL&#8221; alan\u0131na veritaban\u0131n\u0131z\u0131n JDBC URL&#8217;sini girin (\u00f6rne\u011fin, <code>jdbc:postgresql:\/\/my-rds-instance.abcdefgh.us-east-1.rds.amazonaws.com:5432\/mydb<\/code>).<\/li>\n<li>Kullan\u0131c\u0131 ad\u0131 ve \u015fifre bilgilerini girin.<\/li>\n<li>Varsa VPC, alt a\u011f ve g\u00fcvenlik grubu ayarlar\u0131n\u0131 yap\u0131land\u0131r\u0131n.<\/li>\n<li>Ba\u011flant\u0131y\u0131 kaydedin ve test edin.<\/li>\n<\/ol>\n<p>Bu ilk ad\u0131m, AWS Glue&#8217;un veri kaynaklar\u0131n\u0131zla g\u00fcvenli ve ba\u015far\u0131l\u0131 bir \u015fekilde ileti\u015fim kurabilmesini sa\u011flar, sonraki ad\u0131mlar i\u00e7in sa\u011flam bir temel olu\u015fturur.<\/p>\n<h3>Glue Crawlers ile Veri Ke\u015ffi ve \u015eema Olu\u015fturma S\u00fcreci Nas\u0131l \u0130\u015fler?<\/h3>\n<p>Veri kaynaklar\u0131na ba\u011flant\u0131 kurduktan sonra, s\u0131ra bu kaynaklardaki verilerin yap\u0131s\u0131n\u0131 ke\u015ffetmeye ve Glue Data Catalog&#8217;a kaydetmeye gelir. \u0130\u015fte bu noktada Glue Crawlers devreye girer. Glue Crawler&#8217;lar, belirtilen veri kaynaklar\u0131n\u0131 tarayarak, verinin format\u0131n\u0131 (CSV, JSON, Parquet vb.), \u015femas\u0131n\u0131 (s\u00fctun adlar\u0131, veri tipleri) ve partition yap\u0131s\u0131n\u0131 otomatik olarak alg\u0131lar ve bu metadata&#8217;y\u0131 Glue Data Catalog&#8217;da bir tablo olarak olu\u015fturur.<\/p>\n<p>Bir Crawler olu\u015fturma ad\u0131mlar\u0131:<\/p>\n<ol>\n<li>AWS Glue konsolunda sol men\u00fcden &#8220;Crawlers&#8221; (Taray\u0131c\u0131lar) se\u00e7ene\u011fine t\u0131klay\u0131n.<\/li>\n<li>&#8220;Add crawler&#8221; (Taray\u0131c\u0131 ekle) butonuna t\u0131klay\u0131n.<\/li>\n<li>Taray\u0131c\u0131ya anlaml\u0131 bir isim verin (\u00f6rne\u011fin, <code>my-s3-data-crawler<\/code> veya <code>my-rds-customer-crawler<\/code>).<\/li>\n<li>&#8220;Data sources&#8221; (Veri kaynaklar\u0131) ad\u0131m\u0131nda, tarayaca\u011f\u0131n\u0131z veri kayna\u011f\u0131n\u0131 ekleyin. \u00d6rne\u011fin, bir S3 klas\u00f6r\u00fc veya daha \u00f6nce olu\u015fturdu\u011funuz bir JDBC ba\u011flant\u0131s\u0131 se\u00e7ebilirsiniz.<\/li>\n<li>Bir S3 klas\u00f6r\u00fc i\u00e7in yolu belirtin (\u00f6rne\u011fin, <code>s3:\/\/my-data-lake-bucket\/raw_data\/customer\/<\/code>).<\/li>\n<li>Crawler&#8217;\u0131n AWS kaynaklar\u0131na eri\u015febilmesi i\u00e7in uygun izinlere sahip bir IAM rol\u00fc se\u00e7in veya yeni bir rol olu\u015fturun. Bu rol\u00fcn S3 okuma\/yazma, Glue servislerine eri\u015fim gibi gerekli izinleri olmal\u0131d\u0131r.<\/li>\n<li>Crawler&#8217;\u0131n sonu\u00e7lar\u0131n\u0131 kaydedece\u011fi bir &#8220;Database&#8221; (Veritaban\u0131) se\u00e7in veya yeni bir tane olu\u015fturun (bu, Data Catalog i\u00e7indeki mant\u0131ksal bir grupland\u0131rmad\u0131r).<\/li>\n<li>Crawler&#8217;\u0131n \u00e7al\u0131\u015fma s\u0131kl\u0131\u011f\u0131n\u0131 belirleyin: iste\u011fe ba\u011fl\u0131 (on-demand), saatlik, g\u00fcnl\u00fck veya \u00f6zel bir zamanlama.<\/li>\n<li>Crawler&#8217;\u0131 inceleyin ve olu\u015fturun.<\/li>\n<li>Olu\u015fturduktan sonra, &#8220;Run crawler&#8221; (Taray\u0131c\u0131y\u0131 \u00e7al\u0131\u015ft\u0131r) butonuna t\u0131klayarak ilk taramay\u0131 ba\u015flat\u0131n.<\/li>\n<\/ol>\n<p>Crawler \u00e7al\u0131\u015ft\u0131\u011f\u0131nda, se\u00e7ti\u011finiz veri kayna\u011f\u0131n\u0131 analiz eder, dosya formatlar\u0131n\u0131 otomatik olarak alg\u0131lar (\u00f6rne\u011fin, CSV i\u00e7in ba\u015fl\u0131k sat\u0131r\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol eder) ve her bir s\u00fctunun veri tipini \u00e7\u0131kar\u0131r. \u00d6rne\u011fin, bir S3 klas\u00f6r\u00fcnde yer alan Parquet dosyalar\u0131n\u0131 tarad\u0131\u011f\u0131n\u0131zda, Crawler Parquet&#8217;in self-describing yap\u0131s\u0131ndan faydalanarak \u015femay\u0131 do\u011fru bir \u015fekilde tespit eder. Taramay\u0131 tamamlad\u0131\u011f\u0131nda, Glue Data Catalog&#8217;\u0131n\u0131zda, tarad\u0131\u011f\u0131 verinin \u015femas\u0131na ve konumuna sahip yeni bir tablo g\u00f6receksiniz. Bu tablo, daha sonra Glue ETL i\u015fleri taraf\u0131ndan veri okumak ve yazmak i\u00e7in kullan\u0131labilir.<\/p>\n<div class=\"code-example\" style=\"background-color: #f8f9fa; border: 1px solid #dee2e6; padding: 15px; margin: 20px 0;\">\n<p><strong>\u00d6rnek bir S3 klas\u00f6r\u00fc i\u00e7in Crawler yap\u0131land\u0131rma ad\u0131mlar\u0131 (konsol \u00fczerinden):<\/strong><\/p>\n<ol>\n<li><strong>Crawler Ad\u0131:<\/strong> <code>s3-customer-data-crawler<\/code><\/li>\n<li><strong>Veri Kayna\u011f\u0131:<\/strong> S3<\/li>\n<li><strong>S3 Yolu:<\/strong> <code>s3:\/\/my-data-lake-raw\/customers\/<\/code> (CSV dosyalar\u0131n\u0131n bulundu\u011fu varsay\u0131ls\u0131n)<\/li>\n<li><strong>IAM Rol\u00fc:<\/strong> <code>AWSGlueServiceRole-MyCrawler<\/code> (S3&#8217;ten okuma ve Glue&#8217;a yazma yetkili)<\/li>\n<li><strong>Hedef Veritaban\u0131:<\/strong> <code>raw_data_db<\/code><\/li>\n<li><strong>\u00c7al\u0131\u015fma S\u0131kl\u0131\u011f\u0131:<\/strong> \u0130ste\u011fe Ba\u011fl\u0131 (On-demand)<\/li>\n<li>Crawler tamamland\u0131\u011f\u0131nda, <code>raw_data_db<\/code> veritaban\u0131 alt\u0131nda <code>customers<\/code> ad\u0131nda bir tablo olu\u015facak ve bu tablonun s\u00fctunlar\u0131 (id, name, email, registration_date vb.) ve veri tipleri otomatik olarak belirlenmi\u015f olacakt\u0131r.<\/li>\n<\/ol>\n<\/div>\n<p>Bu otomasyon, veri m\u00fchendislerinin manuel \u015fema tan\u0131mlama ve g\u00fcncelleme y\u00fck\u00fcnden kurtulmas\u0131n\u0131 sa\u011flar, b\u00f6ylece de\u011fi\u015fen veri yap\u0131s\u0131na daha h\u0131zl\u0131 adapte olabilirler. Veri Katalogu&#8217;ndaki bu tablolar, sonraki d\u00f6n\u00fc\u015f\u00fcm ve y\u00fckleme a\u015famalar\u0131 i\u00e7in temel olu\u015fturur.<\/p>\n<h2>AWS Glue \u0130\u015fleri ile Veri D\u00f6n\u00fc\u015f\u00fcm\u00fc ve Temizli\u011fi: PySpark&#8217;\u0131n G\u00fcc\u00fc<\/h2>\n<p>Veri kaynaklar\u0131n\u0131z\u0131 kataloglad\u0131ktan sonraki kritik ad\u0131m, ham veriyi de\u011ferli bilgilere d\u00f6n\u00fc\u015ft\u00fcrmektir. AWS Glue \u0130\u015fleri (Glue Jobs), bu d\u00f6n\u00fc\u015f\u00fcm ve temizlik s\u00fcre\u00e7lerini y\u00fcr\u00fctmek i\u00e7in tasarlanm\u0131\u015ft\u0131r. Bu b\u00f6l\u00fcmde, Glue ETL i\u015flerinin nas\u0131l olu\u015fturulup yap\u0131land\u0131r\u0131laca\u011f\u0131n\u0131 ve Python (PySpark) kullanarak \u00e7ok kaynakl\u0131 verileri nas\u0131l d\u00f6n\u00fc\u015ft\u00fcrebilece\u011finizi pratik bir \u00f6rnekle inceleyece\u011fiz.<\/p>\n<h3>Glue ETL \u0130\u015fleri Olu\u015fturma ve Yap\u0131land\u0131rma: En \u0130yi Uygulamalar Nelerdir?<\/h3>\n<p>AWS Glue ETL i\u015fleri, Apache Spark ortam\u0131nda PySpark (Python + Spark) veya Scala kullanarak \u00e7al\u0131\u015ft\u0131r\u0131labilir. Bu i\u015fler, veriyi okuma, filtreleme, birle\u015ftirme, d\u00f6n\u00fc\u015ft\u00fcrme ve hedef depolama alan\u0131na yazma gibi geni\u015f bir yelpazede g\u00f6revleri yerine getirebilir. \u0130\u015f olu\u015fturma s\u00fcreci genellikle \u015fu ad\u0131mlar\u0131 i\u00e7erir:<\/p>\n<ol>\n<li><strong>\u0130\u015f T\u00fcr\u00fc Se\u00e7imi:<\/strong> AWS Glue konsolunda &#8220;ETL Jobs&#8221; (ETL \u0130\u015fleri) b\u00f6l\u00fcm\u00fcne gidin ve &#8220;Add job&#8221; (\u0130\u015f ekle) se\u00e7ene\u011fini t\u0131klay\u0131n. \u0130\u015fin t\u00fcr\u00fcn\u00fc se\u00e7melisiniz: Spark veya Python Shell. B\u00fcy\u00fck veri d\u00f6n\u00fc\u015f\u00fcmleri i\u00e7in Spark tercih edilir.<\/li>\n<li><strong>\u0130\u015f Yap\u0131land\u0131rmas\u0131:<\/strong> \u0130\u015fe bir isim verin, kullan\u0131lacak IAM rol\u00fcn\u00fc (Glue i\u015flerinin S3&#8217;e eri\u015fim, Data Catalog&#8217;a yazma vb. yetkileri olmal\u0131) ve Spark s\u00fcr\u00fcm\u00fcn\u00fc se\u00e7in.<\/li>\n<li><strong>Betik Geli\u015ftirme:<\/strong> Glue size bo\u015f bir betik sa\u011flayabilir veya \u00f6nceden tan\u0131mlanm\u0131\u015f bir \u015fablonla ba\u015flayabilirsiniz. Betik kodunu do\u011frudan konsolda d\u00fczenleyebilir veya harici bir IDE&#8217;de geli\u015ftirip S3&#8217;e y\u00fckleyerek kullanabilirsiniz. PySpark, veri manip\u00fclasyonu i\u00e7in g\u00fc\u00e7l\u00fc ve esnek bir se\u00e7enektir.<\/li>\n<li><strong>\u0130\u015f \u00d6zellikleri:<\/strong> \u0130\u015fin \u00e7al\u0131\u015faca\u011f\u0131 Spark worker t\u00fcr\u00fcn\u00fc ve say\u0131s\u0131n\u0131 (DPU &#8211; Data Processing Units), zaman a\u015f\u0131m\u0131 s\u00fcresini ve deneme say\u0131s\u0131n\u0131 belirleyin. Bu ayarlar, i\u015fin performans\u0131 ve maliyeti \u00fczerinde do\u011frudan etkilidir. \u00d6rne\u011fin, daha fazla DPU, daha h\u0131zl\u0131 i\u015fleme anlam\u0131na gelir ancak maliyeti art\u0131r\u0131r.<\/li>\n<li><strong>Geli\u015ftirici U\u00e7 Noktas\u0131 (Developer Endpoint) Kullan\u0131m\u0131:<\/strong> \u0130leri d\u00fczey kullan\u0131c\u0131lar i\u00e7in, beti\u011fi etkile\u015fimli olarak geli\u015ftirmek ve test etmek amac\u0131yla bir geli\u015ftirici u\u00e7 noktas\u0131 olu\u015fturmak faydal\u0131d\u0131r. Bu, bir Jupyter not defteri veya PyCharm gibi bir IDE ile Spark k\u00fcmesine ba\u011flanman\u0131z\u0131 sa\u011flar.<\/li>\n<li><strong>Trigger&#8217;lar ve \u0130\u015f Ak\u0131\u015flar\u0131 (Workflows):<\/strong> \u0130\u015fleri belirli bir takvime g\u00f6re (\u00f6rne\u011fin, her gece), ba\u015fka bir olay\u0131n tetiklemesiyle (\u00f6rne\u011fin, S3&#8217;e yeni bir dosya y\u00fcklendi\u011finde) veya di\u011fer Glue i\u015fleri tamamland\u0131\u011f\u0131nda \u00e7al\u0131\u015ft\u0131rmak i\u00e7in tetikleyiciler (triggers) tan\u0131mlayabilirsiniz. Birden fazla ba\u011f\u0131ml\u0131 i\u015fi y\u00f6netmek i\u00e7in i\u015f ak\u0131\u015flar\u0131 (workflows) olu\u015fturmak da m\u00fcmk\u00fcnd\u00fcr.<\/li>\n<\/ol>\n<div class=\"expert-tip\" style=\"padding: 15px; margin: 20px 0; border-left: 5px solid #007bff; background-color: #e9f5ff; font-style: italic;\">\n  Uzman \u0130pucu: Glue i\u015fleriniz i\u00e7in en uygun DPU ve worker tipini se\u00e7mek, maliyet ve performans dengesi a\u00e7\u0131s\u0131ndan kritiktir. Genellikle k\u00fc\u00e7\u00fck ve orta \u00f6l\u00e7ekli i\u015fler i\u00e7in standart DPU&#8217;lar yeterli olurken, \u00e7ok b\u00fcy\u00fck veri hacimleri veya karma\u015f\u0131k d\u00f6n\u00fc\u015f\u00fcmler i\u00e7in G.1X veya G.2X worker tipleri daha y\u00fcksek performans sunar. \u0130\u015flemci ve bellek yo\u011funlu\u011funa g\u00f6re se\u00e7im yap\u0131n.\n<\/div>\n<h3>Ger\u00e7ek Bir Senaryo: Farkl\u0131 Kaynaklardan Gelen Verileri Birle\u015ftirme ve D\u00f6n\u00fc\u015ft\u00fcrme \u00d6rne\u011fi<\/h3>\n<p>\u015eimdi somut bir senaryo \u00fczerinden ilerleyelim. Elimizde iki farkl\u0131 kaynaktan gelen veri oldu\u011funu varsayal\u0131m:<\/p>\n<ul>\n<li><strong>M\u00fc\u015fteri Verileri (S3&#8217;te Parquet format\u0131nda):<\/strong> <code>s3:\/\/my-data-lake\/raw\/customers\/<\/code> konumunda <code>customer_id<\/code>, <code>name<\/code>, <code>email<\/code>, <code>registration_date<\/code> bilgileri.<\/li>\n<li><strong>Sipari\u015f Verileri (RDS PostgreSQL&#8217;de tablo):<\/strong> <code>orders<\/code> tablosunda <code>order_id<\/code>, <code>customer_id<\/code>, <code>product_id<\/code>, <code>order_date<\/code>, <code>amount<\/code> bilgileri.<\/li>\n<\/ul>\n<p>Amac\u0131m\u0131z, bu iki veriyi <code>customer_id<\/code> \u00fczerinden birle\u015ftirmek, <code>registration_date<\/code> alan\u0131n\u0131 uygun bir tarih format\u0131na d\u00f6n\u00fc\u015ft\u00fcrmek ve toplam sipari\u015f miktar\u0131n\u0131 (<code>total_order_amount<\/code>) hesaplayarak zenginle\u015ftirilmi\u015f veriyi Parquet format\u0131nda optimize edilmi\u015f bir S3 klas\u00f6r\u00fcne yazmakt\u0131r.<\/p>\n<div class=\"code-example\" style=\"background-color: #f8f9fa; border: 1px solid #dee2e6; padding: 15px; margin: 20px 0;\">\n<p><strong>AWS Glue PySpark ETL \u0130\u015f \u00d6rne\u011fi:<\/strong><\/p>\n<pre><code class=\"language-python\">\nimport sys\nfrom awsglue.transforms import *\nfrom awsglue.utils import getResolvedOptions\nfrom pyspark.context import SparkContext\nfrom awsglue.context import GlueContext\nfrom awsglue.job import Job\nfrom pyspark.sql.functions import col, sum, to_date\n\n<strong>@params --JOB_NAME<\/strong>\nargs = getResolvedOptions(sys.argv, ['JOB_NAME'])\n\nsc = SparkContext()\nglueContext = GlueContext(sc)\nspark = glueContext.spark_session\njob = Job(glueContext)\njob.init(args['JOB_NAME'], args)\n\n# 1. AWS Glue Data Catalog'dan m\u00fc\u015fteri verilerini oku\n#   'customers_s3' daha \u00f6nce crawler ile olu\u015fturulmu\u015f tablo ad\u0131 olsun\ncustomer_df = glueContext.create_dynamic_frame.from_catalog(\n    database=\"raw_data_db\",\n    table_name=\"customers_s3\",\n    transformation_ctx=\"customer_df_ctx\"\n).toDF()\n\n# 2. AWS Glue Data Catalog'dan sipari\u015f verilerini oku\n#   'orders_rds' daha \u00f6nce crawler ile olu\u015fturulmu\u015f tablo ad\u0131 olsun (RDS ba\u011flant\u0131s\u0131 \u00fczerinden)\norder_df = glueContext.create_dynamic_frame.from_catalog(\n    database=\"raw_data_db\",\n    table_name=\"orders_rds\",\n    transformation_ctx=\"order_df_ctx\"\n).toDF()\n\n# 3. Veri D\u00f6n\u00fc\u015f\u00fcm\u00fc ve Birle\u015ftirme\n# M\u00fc\u015fteri ve sipari\u015f verilerini customer_id \u00fczerinden birle\u015ftir\njoined_df = customer_df.join(order_df, customer_df.customer_id == order_df.customer_id, \"inner\")\n\n# registration_date s\u00fctununu tarih format\u0131na d\u00f6n\u00fc\u015ft\u00fcr\njoined_df = joined_df.withColumn(\"registration_date\", to_date(col(\"registration_date\"), \"yyyy-MM-dd\"))\n\n# Her m\u00fc\u015fterinin toplam sipari\u015f miktar\u0131n\u0131 hesapla\n# Group by customer_id ve ilgili di\u011fer m\u00fc\u015fteri bilgileri\ncustomer_total_orders_df = joined_df.groupBy(\"customer_id\", \"name\", \"email\", \"registration_date\") \\\n                                     .agg(sum(\"amount\").alias(\"total_order_amount\"))\n\n# Sadece gerekli s\u00fctunlar\u0131 se\u00e7 ve s\u0131ray\u0131 d\u00fczenle\nfinal_df = customer_total_orders_df.select(\n    col(\"customer_id\"),\n    col(\"name\"),\n    col(\"email\"),\n    col(\"registration_date\"),\n    col(\"total_order_amount\")\n)\n\n# 4. D\u00f6n\u00fc\u015ft\u00fcr\u00fclm\u00fc\u015f veriyi S3'e Parquet format\u0131nda yaz\n#    Hedef yol: s3:\/\/my-data-lake\/processed\/customer_summary\/\noutput_path = \"s3:\/\/my-data-lake\/processed\/customer_summary\/\"\n\n# Dataframe'i DynamicFrame'e d\u00f6n\u00fc\u015ft\u00fcrerek Glue'un optimize edilmi\u015f yazma yeteneklerinden faydalan\noutput_dynamic_frame = DynamicFrame.fromDF(final_df, glueContext, \"output_dynamic_frame_ctx\")\n\n# Parquet format\u0131nda S3'e yaz, partition by registration_date \u00f6rne\u011fi\nglueContext.write_dynamic_frame.from_options(\n    frame=output_dynamic_frame,\n    connection_type=\"s3\",\n    connection_options={\"path\": output_path, \"partitionKeys\": [\"registration_date\"]},\n    format=\"parquet\",\n    format_options={\"compression\": \"snappy\"},\n    transformation_ctx=\"output_ctx\"\n)\n\njob.commit()\n<\/pre>\n<p><\/code>\n<\/div>\n<p>Bu \u00f6rnek kod, PySpark'\u0131n g\u00fcc\u00fcn\u00fc kullanarak iki farkl\u0131 kaynaktan gelen veriyi nas\u0131l birle\u015ftirece\u011finizi, d\u00f6n\u00fc\u015ft\u00fcrece\u011finizi ve optimize edilmi\u015f bir \u015fekilde S3'e yazaca\u011f\u0131n\u0131z\u0131 g\u00f6stermektedir. Glue Data Catalog sayesinde, veritaban\u0131 ba\u011flant\u0131 detaylar\u0131n\u0131 veya S3 dosya yollar\u0131n\u0131 do\u011frudan kod i\u00e7inde belirtmek zorunda kalmadan, tablolar\u0131n mant\u0131ksal isimleri \u00fczerinden verilere eri\u015febiliriz. Bu, kodun daha temiz ve y\u00f6netilebilir olmas\u0131n\u0131 sa\u011flar. Ayr\u0131ca, <code>partitionKeys<\/code> kullanarak veriyi <code>registration_date<\/code>'e g\u00f6re b\u00f6lmek, daha sonraki analiz sorgular\u0131n\u0131n performans\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131racakt\u0131r.<\/p>\n<h2>Vaka Analizi: Bir E-ticaret \u015eirketi AWS Glue ile Veri Ambar\u0131n\u0131 Nas\u0131l Kurdu?<\/h2>\n<p>Ger\u00e7ek d\u00fcnya senaryolar\u0131, teknolojinin pratik uygulamalar\u0131n\u0131 anlamak i\u00e7in kritik \u00f6neme sahiptir. Bu b\u00f6l\u00fcmde, b\u00fcy\u00fck bir e-ticaret \u015firketinin, da\u011f\u0131n\u0131k veri kaynaklar\u0131ndan gelen bilgileri AWS Glue kullanarak merkezi bir veri ambar\u0131nda nas\u0131l birle\u015ftirdi\u011fini ve bunun onlara nas\u0131l de\u011fer katt\u0131\u011f\u0131n\u0131 inceleyece\u011fiz.<\/p>\n<h3>Problem: M\u00fc\u015fteri, \u00dcr\u00fcn ve Sat\u0131\u015f Verilerinin Birle\u015ftirilmesi<\/h3>\n<p>B\u00fcy\u00fck bir \u00e7evrimi\u00e7i perakendeci olan \"TrendShop\", pazarlama, operasyon ve finans departmanlar\u0131n\u0131n veri odakl\u0131 kararlar alabilmesi i\u00e7in tutarl\u0131 ve g\u00fcncel bilgilere ihtiya\u00e7 duyuyordu. Ancak verileri \u00e7e\u015fitli sistemlerde da\u011f\u0131n\u0131k durumdayd\u0131:<\/p>\n<ul>\n<li><strong>M\u00fc\u015fteri Bilgileri:<\/strong> \u015eirket i\u00e7i bir CRM sisteminde (ili\u015fkisel veritaban\u0131).<\/li>\n<li><strong>\u00dcr\u00fcn Katalo\u011fu:<\/strong> Bir PIM (Product Information Management) sisteminde (ayr\u0131 bir ili\u015fkisel veritaban\u0131).<\/li>\n<li><strong>Web Sitesi Ziyaretleri ve Davran\u0131\u015flar\u0131:<\/strong> Web sunucusu loglar\u0131 ve analitik ara\u00e7lardan (S3'te JSON ve CSV dosyalar\u0131).<\/li>\n<li><strong>Sipari\u015f ve \u0130\u015flem Verileri:<\/strong> Bir ERP sisteminde (yine ili\u015fkisel veritaban\u0131).<\/li>\n<li><strong>Pazarlama Kampanyalar\u0131:<\/strong> Farkl\u0131 pazarlama otomasyon ara\u00e7lar\u0131ndan gelen raporlar (S3'te CSV).<\/li>\n<\/ul>\n<p>Bu farkl\u0131 kaynaklar nedeniyle, TrendShop analistleri:<\/p>\n<ul>\n<li>Bir m\u00fc\u015fterinin t\u00fcm sat\u0131n alma ge\u00e7mi\u015fini, web sitesi etkile\u015fimlerini ve hangi pazarlama kampanyalar\u0131ndan etkilendi\u011fini tek bir g\u00f6r\u00fcn\u00fcmde elde etmekte zorlan\u0131yordu.<\/li>\n<li>\u00dcr\u00fcn performans\u0131n\u0131, pazarlama maliyetlerini ve m\u00fc\u015fteri ya\u015fam boyu de\u011ferini hesaplamak i\u00e7in manuel veri birle\u015ftirme i\u015flemleri yapmak zorunda kal\u0131yordu, bu da zaman al\u0131c\u0131 ve hataya a\u00e7\u0131kt\u0131.<\/li>\n<li>Geleneksel ETL ara\u00e7lar\u0131, her yeni veri kayna\u011f\u0131 veya de\u011fi\u015fen \u015fema i\u00e7in yo\u011fun manuel m\u00fcdahale gerektiriyordu, bu da \u00e7evikli\u011fi k\u0131s\u0131tl\u0131yordu.<\/li>\n<li>Altyap\u0131 y\u00f6netimi ve \u00f6l\u00e7eklenebilirlik maliyetleri giderek art\u0131yordu.<\/li>\n<\/ul>\n<h3>\u00c7\u00f6z\u00fcm: AWS Glue ile B\u00fct\u00fcnsel Bir Veri Ambar\u0131 Olu\u015fturma<\/h3>\n<p>TrendShop, bu sorunlar\u0131 \u00e7\u00f6zmek ve modern bir veri altyap\u0131s\u0131 kurmak i\u00e7in AWS Glue'u temel alan bir veri g\u00f6l\u00fc (data lake) ve veri ambar\u0131 (data warehouse) yakla\u015f\u0131m\u0131 benimsemeye karar verdi. \u00c7\u00f6z\u00fcm ad\u0131mlar\u0131 \u015fu \u015fekilde ilerledi:<\/p>\n<ol>\n<li><strong>Veri G\u00f6l\u00fc Altyap\u0131s\u0131:<\/strong> Amazon S3, t\u00fcm ham veriler i\u00e7in merkezi bir veri g\u00f6l\u00fc olarak konumland\u0131r\u0131ld\u0131. \u0130li\u015fkisel veritabanlar\u0131ndan gelen veriler, AWS Database Migration Service (DMS) kullan\u0131larak periyodik olarak S3'e aktar\u0131ld\u0131. Web loglar\u0131 ve pazarlama raporlar\u0131 do\u011frudan S3'e y\u00fcklendi.<\/li>\n<li><strong>Glue Crawlers ile Veri Ke\u015ffi:<\/strong> AWS Glue Crawlers, S3'teki t\u00fcm ham verileri (JSON, CSV, Parquet) ve ili\u015fkisel veritabanlar\u0131n\u0131 (CRM, PIM, ERP) taramak i\u00e7in yap\u0131land\u0131r\u0131ld\u0131. Bu sayede, t\u00fcm veri kaynaklar\u0131n\u0131n \u015femalar\u0131 ve metadata'lar\u0131 otomatik olarak AWS Glue Data Catalog'da tutuldu. Bu, analistlerin ve veri bilimcilerinin verilere tutarl\u0131 bir \u015fekilde eri\u015fmesini sa\u011flad\u0131.<\/li>\n<li><strong>AWS Glue ETL \u0130\u015fleri:<\/strong> Bir dizi AWS Glue Job (PySpark ile yaz\u0131lm\u0131\u015f) geli\u015ftirildi. Bu i\u015fler:\n<ul>\n<li>Farkl\u0131 sistemlerden gelen <code>customer_id<\/code>'leri standartla\u015ft\u0131rd\u0131 ve birle\u015ftirdi.<\/li>\n<li>\u00dcr\u00fcn katalogu ile sipari\u015f verilerini birle\u015ftirerek \u00fcr\u00fcn kategorisi ve markas\u0131 gibi detaylar\u0131 ekledi.<\/li>\n<li>Web loglar\u0131ndan kullan\u0131c\u0131 oturum bilgilerini \u00e7\u0131kar\u0131p, m\u00fc\u015fteri kimlikleriyle e\u015fle\u015ftirdi.<\/li>\n<li>M\u00fc\u015fteri demografik bilgileri, sat\u0131n alma ge\u00e7mi\u015fi, web sitesi davran\u0131\u015flar\u0131 ve pazarlama etkile\u015fimlerini tek bir \"m\u00fc\u015fteri 360\" g\u00f6r\u00fcn\u00fcm\u00fcnde birle\u015ftirdi.<\/li>\n<li>Verileri temizledi, eksik de\u011ferleri doldurdu ve veri tutars\u0131zl\u0131klar\u0131n\u0131 giderdi.<\/li>\n<li>D\u00f6n\u00fc\u015ft\u00fcr\u00fclm\u00fc\u015f veriyi optimize edilmi\u015f Parquet format\u0131nda, b\u00f6l\u00fcmleme (partitioning) yap\u0131land\u0131r\u0131larak S3'teki \"i\u015flenmi\u015f (processed)\" veri katman\u0131na yazd\u0131.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Hedef Veri Ambar\u0131:<\/strong> \u0130\u015flenmi\u015f ve d\u00f6n\u00fc\u015f\u00fcmden ge\u00e7irilmi\u015f veriler, daha h\u0131zl\u0131 analiz ve raporlama i\u00e7in Amazon Redshift'e y\u00fcklendi. Redshift, \u00f6zellikle karma\u015f\u0131k analitik sorgular i\u00e7in optimize edilmi\u015f bir veri ambar\u0131 g\u00f6revi g\u00f6rd\u00fc.<\/li>\n<li><strong>Otomasyon ve Zamanlama:<\/strong> AWS Glue \u0130\u015f Ak\u0131\u015flar\u0131 (Workflows) ve Tetikleyiciler (Triggers) kullan\u0131larak t\u00fcm ETL s\u00fcreci otomatikle\u015ftirildi. \u00d6rne\u011fin, ERP sisteminden yeni sipari\u015f verileri S3'e d\u00fc\u015ft\u00fc\u011f\u00fcnde bir Glue i\u015fi tetiklenerek verilerin i\u015flenmesi sa\u011fland\u0131.<\/li>\n<\/ol>\n<h3>Sonu\u00e7lar ve Kazan\u0131mlar<\/h3>\n<p>TrendShop'un AWS Glue tabanl\u0131 bu \u00e7\u00f6z\u00fcm\u00fc, \u00f6nemli faydalar sa\u011flad\u0131:<\/p>\n<ul>\n<li><strong>H\u0131z ve \u00c7eviklik:<\/strong> Veri entegrasyonu ve d\u00f6n\u00fc\u015f\u00fcm s\u00fcre\u00e7leri otomatikle\u015fti\u011fi i\u00e7in, yeni veri kaynaklar\u0131n\u0131n eklenmesi veya mevcut \u015femalar\u0131n de\u011fi\u015fmesi \u00e7ok daha h\u0131zl\u0131 ve kolay hale geldi. Haftalar s\u00fcren veri haz\u0131rlama s\u00fcre\u00e7leri g\u00fcnlere, hatta saatlere indi.<\/li>\n<li><strong>Maliyet Tasarrufu:<\/strong> Sunucusuz bir hizmet olan AWS Glue sayesinde, altyap\u0131 y\u00f6netimi ve sabit sunucu maliyetleri ortadan kalkt\u0131. Sadece kullan\u0131lan kaynaklar i\u00e7in \u00f6deme yap\u0131lmas\u0131, operasyonel giderleri \u00f6nemli \u00f6l\u00e7\u00fcde azaltt\u0131.<\/li>\n<li><strong>Geli\u015fmi\u015f Analitik Yetenekleri:<\/strong> T\u00fcm verilerin tek bir merkezi yerde, temiz ve entegre bir \u015fekilde bulunmas\u0131, pazarlama, sat\u0131\u015f ve \u00fcr\u00fcn ekiplerine daha derinlemesine analizler yapma imkan\u0131 sundu. M\u00fc\u015fteri segmentasyonu, \u00fcr\u00fcn tavsiyeleri ve kampanya performans analizi gibi alanlarda daha do\u011fru ve aksiyona d\u00f6n\u00fc\u015ft\u00fcr\u00fclebilir i\u00e7g\u00f6r\u00fcler elde edildi.<\/li>\n<li><strong>Veri Kalitesi ve G\u00fcvenilirli\u011fi:<\/strong> Otomatik \u015fema ke\u015ffi ve programatik d\u00f6n\u00fc\u015f\u00fcm i\u015fleri sayesinde, veri kalitesi artt\u0131 ve manuel hatalar azald\u0131.<\/li>\n<li><strong>\u00d6l\u00e7eklenebilirlik:<\/strong> AWS Glue'un esnek ve \u00f6l\u00e7eklenebilir yap\u0131s\u0131, TrendShop'un s\u00fcrekli artan veri hacmi ve kullan\u0131c\u0131 taleplerine kolayca uyum sa\u011flamas\u0131na olanak tan\u0131d\u0131.<\/li>\n<\/ul>\n<p>Bu vaka analizi, AWS Glue'un karma\u015f\u0131k ve \u00e7ok kaynakl\u0131 veri entegrasyon projelerinde nas\u0131l g\u00fc\u00e7l\u00fc ve maliyet etkin bir \u00e7\u00f6z\u00fcm sundu\u011funu a\u00e7\u0131k\u00e7a g\u00f6stermektedir. \u0130\u015fletmelerin veriye dayal\u0131 stratejilerini hayata ge\u00e7irmeleri i\u00e7in kritik bir ara\u00e7t\u0131r.<\/p>\n<h2>\u0130leri D\u00fczey AWS Glue Kullan\u0131m\u0131 ve Optimizasyon: Performans\u0131 Art\u0131rma Yollar\u0131<\/h2>\n<p>AWS Glue'u temel d\u00fczeyde kullanmak kolay olsa da, b\u00fcy\u00fck veri hacimleriyle \u00e7al\u0131\u015f\u0131rken veya karma\u015f\u0131k d\u00f6n\u00fc\u015f\u00fcmler yaparken performans\u0131 ve maliyeti optimize etmek kritik hale gelir. Bu b\u00f6l\u00fcmde, daha deneyimli kullan\u0131c\u0131lar i\u00e7in AWS Glue kullan\u0131m\u0131n\u0131 bir \u00fcst seviyeye ta\u015f\u0131yacak ileri d\u00fczey ipu\u00e7lar\u0131 ve en iyi uygulamalar\u0131 ele alaca\u011f\u0131z.<\/p>\n<h3>Glue \u0130\u015flerinde Maliyet ve Performans Nas\u0131l Optimize Edilir?<\/h3>\n<p>AWS Glue i\u015flerinizin maliyetini d\u00fc\u015f\u00fcrmenin ve performans\u0131n\u0131 art\u0131rman\u0131n birka\u00e7 etkili yolu vard\u0131r:<\/p>\n<ol>\n<li><strong>Do\u011fru Worker Tipini ve DPU Say\u0131s\u0131n\u0131 Se\u00e7me:<\/strong>\n<ul>\n<li><strong>Standard Worker:<\/strong> Varsay\u0131lan ve \u00e7o\u011fu i\u015f y\u00fck\u00fc i\u00e7in yeterlidir. DPU ba\u015f\u0131na maliyeti d\u00fc\u015f\u00fckt\u00fcr.<\/li>\n<li><strong>G.1X Worker:<\/strong> Daha fazla bellek gerektiren i\u015f y\u00fckleri i\u00e7in uygundur. Daha y\u00fcksek bellek ve daha iyi performans sunar.<\/li>\n<li><strong>G.2X Worker:<\/strong> En y\u00fcksek bellek ve i\u015flemci g\u00fcc\u00fcne sahip olup, \u00e7ok b\u00fcy\u00fck ve karma\u015f\u0131k veri setleri veya y\u00fcksek performans gerektiren i\u015fler i\u00e7in idealdir.<\/li>\n<\/ul>\n<p>        \u0130\u015finizin ihtiya\u00e7lar\u0131na g\u00f6re en uygun worker tipini ve DPU (Data Processing Units) say\u0131s\u0131n\u0131 se\u00e7mek, hem performans\u0131 optimize eder hem de gereksiz maliyetleri \u00f6nler. Genellikle daha az DPU ile ba\u015flay\u0131p, performans sorunlar\u0131 ya\u015fand\u0131\u011f\u0131nda art\u0131rmak iyi bir yakla\u015f\u0131md\u0131r.<\/li>\n<li><strong>Veri Formatlar\u0131 ve S\u0131k\u0131\u015ft\u0131rma:<\/strong>\n<ul>\n<li><strong>Parquet\/ORC:<\/strong> Kolonsal depolama formatlar\u0131 olan Parquet ve ORC, s\u0131k\u0131\u015ft\u0131rma ve sorgu performans\u0131nda \u00f6nemli avantajlar sunar. Sadece ihtiya\u00e7 duyulan s\u00fctunlar\u0131n okunmas\u0131n\u0131 sa\u011flayarak I\/O maliyetlerini d\u00fc\u015f\u00fcr\u00fcrler.<\/li>\n<li><strong>Snappy\/Gzip S\u0131k\u0131\u015ft\u0131rma:<\/strong> Verilerinizi S3'e yazarken Snappy veya Gzip gibi s\u0131k\u0131\u015ft\u0131rma algoritmalar\u0131 kullanmak, depolama maliyetlerini azalt\u0131r ve a\u011f \u00fczerinden veri transferini h\u0131zland\u0131r\u0131r. Snappy, daha h\u0131zl\u0131 s\u0131k\u0131\u015ft\u0131rma\/a\u00e7ma sa\u011flarken, Gzip daha y\u00fcksek s\u0131k\u0131\u015ft\u0131rma oran\u0131 sunar.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Veri B\u00f6l\u00fcmleme (Partitioning):<\/strong>\n<p>Verilerinizi mant\u0131ksal olarak b\u00f6l\u00fcmler halinde (\u00f6rne\u011fin, <code>\/year=YYYY\/month=MM\/day=DD\/<\/code>) S3'e kaydetmek, sorgu performans\u0131n\u0131 b\u00fcy\u00fck \u00f6l\u00e7\u00fcde art\u0131r\u0131r. Sorgular sadece ilgili b\u00f6l\u00fcmlerdeki veriyi tarar, bu da taranan veri miktar\u0131n\u0131 ve dolay\u0131s\u0131yla maliyeti d\u00fc\u015f\u00fcr\u00fcr. Glue Crawlers, bu b\u00f6l\u00fcmleri otomatik olarak alg\u0131lar ve Data Catalog'a ekler. PySpark kodunuzda <code>partitionKeys<\/code> parametresini kullanarak bunu yapabilirsiniz.<\/p>\n<pre><code class=\"language-python\">\nglueContext.write_dynamic_frame.from_options(\n    frame=output_dynamic_frame,\n    connection_type=\"s3\",\n    connection_options={\"path\": output_path, \"partitionKeys\": [\"year\", \"month\", \"day\"]},\n    format=\"parquet\",\n    transformation_ctx=\"output_ctx\"\n)\n        <\/pre>\n<p><\/code>\n    <\/li>\n<li><strong>Pushdown Predicates ve Filterleme:<\/strong>\n<p>Veri kayna\u011f\u0131nda m\u00fcmk\u00fcn oldu\u011funca erken filtreleme yapmak (pushdown predicates), Glue i\u015finizin okumas\u0131 gereken veri miktar\u0131n\u0131 azalt\u0131r. Bu, \u00f6zellikle b\u00fcy\u00fck veri setleriyle \u00e7al\u0131\u015f\u0131rken I\/O performans\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r. Glue DynamicFrame'ler \u00fczerinde filtreleme yaparken bu optimizasyon otomatik olarak uygulanabilir.<\/p>\n<\/li>\n<li><strong>Bellek Y\u00f6netimi ve Tune Parametreleri:<\/strong>\n<p>Spark i\u015flerinizin bellek ayarlar\u0131n\u0131 (\u00f6rne\u011fin, <code>spark.executor.memory<\/code>, <code>spark.driver.memory<\/code>) optimize etmek, OutOfMemory hatalar\u0131n\u0131 \u00f6nleyebilir ve i\u015flerin daha verimli \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flayabilir. AWS Glue konsolunda \"Job parameters\" (\u0130\u015f parametreleri) b\u00f6l\u00fcm\u00fcnden bu ayarlar\u0131 \u00f6zelle\u015ftirebilirsiniz.<\/p>\n<\/li>\n<\/ol>\n<h3>Glue Studio ve Geli\u015ftirici U\u00e7 Noktalar\u0131 ile Verimli Geli\u015ftirme S\u00fcre\u00e7leri<\/h3>\n<p>AWS Glue, geli\u015ftirme s\u00fcrecini kolayla\u015ft\u0131rmak i\u00e7in \u00e7e\u015fitli ara\u00e7lar sunar:<\/p>\n<ul>\n<li><strong>AWS Glue Studio:<\/strong> Kod yazmadan veya \u00e7ok az kod yazarak g\u00f6rsel olarak ETL i\u015fleri tasarlaman\u0131z\u0131 ve izlemenizi sa\u011flayan bir grafik aray\u00fczd\u00fcr. Veri kaynaklar\u0131n\u0131, d\u00f6n\u00fc\u015f\u00fcmleri ve hedefleri s\u00fcr\u00fckle-b\u0131rak y\u00f6ntemiyle ba\u011flayabilir ve otomatik olarak PySpark kodu olu\u015fturulmas\u0131n\u0131 sa\u011flayabilirsiniz. \u00d6zellikle veri m\u00fchendisli\u011fine yeni ba\u015flayanlar veya h\u0131zl\u0131 prototipleme yapmak isteyenler i\u00e7in harikad\u0131r.<\/li>\n<li><strong>Geli\u015ftirici U\u00e7 Noktalar\u0131 (Developer Endpoints):<\/strong> Spark tabanl\u0131 ETL betikleri geli\u015ftirirken etkile\u015fimli bir ortam sa\u011flar. Bu u\u00e7 noktalar\u0131 kullanarak, bir Jupyter not defteri veya PyCharm gibi bir IDE \u00fczerinden Glue'daki Spark k\u00fcmesine ba\u011flanabilir, beti\u011finizi ad\u0131m ad\u0131m test edebilir ve hatalar\u0131 ay\u0131klayabilirsiniz. Bu, geli\u015ftirme d\u00f6ng\u00fcs\u00fcn\u00fc k\u0131salt\u0131r ve daha karma\u015f\u0131k i\u015flerin geli\u015ftirilmesini kolayla\u015ft\u0131r\u0131r.<\/li>\n<\/ul>\n<h3>Veri Kalitesi ve G\u00fcvenli\u011fi \u0130\u00e7in En \u0130yi Uygulamalar<\/h3>\n<ul>\n<li><strong>Veri Kalitesi Kontrolleri:<\/strong> ETL i\u015flerinizin bir par\u00e7as\u0131 olarak veri kalitesi kontrolleri (\u00f6rne\u011fin, bo\u015f de\u011fer kontrol\u00fc, benzersizlik kontrol\u00fc, referans b\u00fct\u00fcnl\u00fc\u011f\u00fc kontrol\u00fc) uygulamak, veri ambar\u0131n\u0131za veya veri g\u00f6l\u00fcn\u00fcze giren verinin g\u00fcvenilirli\u011fini art\u0131r\u0131r. AWS Glue Data Quality gibi hizmetler bu konuda yard\u0131mc\u0131 olabilir.<\/li>\n<li><strong>IAM Rolleri ve \u0130zinler:<\/strong> Her Glue i\u015fi ve Crawler i\u00e7in en az ayr\u0131cal\u0131k ilkesine (least privilege) uygun IAM rolleri tan\u0131mlay\u0131n. Yaln\u0131zca ihtiya\u00e7 duyulan S3 kovalar\u0131na, veritabanlar\u0131na veya di\u011fer AWS hizmetlerine eri\u015fim izni verin.<\/li>\n<li><strong>\u015eifreleme:<\/strong> Beklemedeki veriyi (data at rest) (S3'te, RDS'te vb.) ve aktar\u0131m halindeki veriyi (data in transit) \u015fifreleyin. AWS KMS (Key Management Service) ile kendi \u015fifreleme anahtarlar\u0131n\u0131z\u0131 kullanabilir veya AWS taraf\u0131ndan y\u00f6netilen anahtarlar\u0131 tercih edebilirsiniz.<\/li>\n<li><strong>Denetleme ve Loglama:<\/strong> AWS CloudWatch Logs ve AWS CloudTrail kullanarak Glue i\u015flerinizin durumunu, performans\u0131n\u0131 ve yap\u0131lan t\u00fcm API \u00e7a\u011fr\u0131lar\u0131n\u0131 izleyin. Bu, sorun giderme ve g\u00fcvenlik denetimi i\u00e7in hayati \u00f6neme sahiptir.<\/li>\n<\/ul>\n<p>Bu ileri d\u00fczey teknikler ve en iyi uygulamalar, AWS Glue ile kurdu\u011funuz veri altyap\u0131s\u0131n\u0131n sadece \u00e7al\u0131\u015fmas\u0131n\u0131 de\u011fil, ayn\u0131 zamanda verimli, g\u00fcvenli ve \u00f6l\u00e7eklenebilir olmas\u0131n\u0131 da sa\u011flar.<\/p>\n<div style=\"background-color: #f0f8ff; border-left: 6px solid #2196F3; margin: 20px 0; padding: 15px;\">\n<h4>Mobil Uyumlu HTML \u00d6rne\u011fi (CSS Media Query):<\/h4>\n<p>Bu makalenin i\u00e7eri\u011fi mobil uyumlu HTML prensiplerine uygun olarak olu\u015fturulmu\u015ftur. Daha spesifik mobil stil ayarlamalar\u0131 i\u00e7in a\u015fa\u011f\u0131daki gibi bir CSS media query yap\u0131s\u0131 kullanabilirsiniz. Bu kod genellikle <code><head><\/code> etiketleri aras\u0131nda veya harici bir CSS dosyas\u0131nda yer al\u0131r.<\/p>\n<pre><code class=\"language-css\">\n<style>\n  \/* Genel stil ayarlar\u0131 *\/\n  body {\n    font-family: Arial, sans-serif;\n    line-height: 1.6;\n    color: #333;\n    margin: 0;\n    padding: 20px;\n  }\n\n  \/* Mobil cihazlar i\u00e7in stil ayarlamalar\u0131 *\/\n  @media (max-width: 768px) {\n    body {\n      padding: 10px;\n    }\n    h2 {\n      font-size: 1.5em;\n    }\n    h3 {\n      font-size: 1.2em;\n    }\n    pre code {\n      overflow-x: auto; \/* Kod bloklar\u0131n\u0131n yatay kayd\u0131rma \u00e7ubu\u011fu *\/\n    }\n    .expert-tip, .code-example {\n      margin: 10px 0;\n      padding: 10px;\n    }\n  }\n\n  \/* \u00c7ok k\u00fc\u00e7\u00fck ekranlar i\u00e7in daha fazla k\u00fc\u00e7\u00fcltme *\/\n  @media (max-width: 480px) {\n    h2 {\n      font-size: 1.3em;\n    }\n    h3 {\n      font-size: 1em;\n    }\n  }\n<\/style>\n<\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki \u00f6rnek, ekran geni\u015fli\u011fine g\u00f6re font boyutlar\u0131n\u0131, padding de\u011ferlerini ve kod bloklar\u0131n\u0131n kayd\u0131rma \u00f6zelliklerini ayarlayarak i\u00e7eri\u011fin farkl\u0131 cihazlarda daha iyi g\u00f6r\u00fcnmesini sa\u011flar. Bu, do\u011frudan HTML <code><body><\/code> i\u00e7inde de\u011fil, <code><head><\/code> b\u00f6l\u00fcm\u00fcnde veya harici bir CSS dosyas\u0131nda tan\u0131mlanmal\u0131d\u0131r.<\/p>\n<\/div>\n<h2>Sonu\u00e7: AWS Glue ile Veri Y\u00f6netiminde Gelece\u011fe Y\u00f6nelik Ad\u0131mlar<\/h2>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn rekabet\u00e7i i\u015f ortam\u0131nda, veriler art\u0131k sadece say\u0131lar veya metinler y\u0131\u011f\u0131n\u0131 olmaktan \u00e7\u0131kt\u0131; i\u015fletmeler i\u00e7in stratejik bir varl\u0131k haline geldi. \u00c7ok kaynakl\u0131 verileri toplamak, temizlemek, d\u00f6n\u00fc\u015ft\u00fcrmek ve analiz edilebilir hale getirmek, yani etkili bir ETL s\u00fcreci y\u00fcr\u00fctmek, bu varl\u0131\u011f\u0131n de\u011ferini maksimize etmenin anahtar\u0131d\u0131r. Geleneksel ETL yakla\u015f\u0131mlar\u0131n\u0131n getirdi\u011fi karma\u015f\u0131kl\u0131klar, y\u00fcksek maliyetler ve \u00f6l\u00e7eklenebilirlik sorunlar\u0131 d\u00fc\u015f\u00fcn\u00fcld\u00fc\u011f\u00fcnde, AWS Glue gibi bulut tabanl\u0131, tam y\u00f6netilen hizmetler, veri m\u00fchendisli\u011fi d\u00fcnyas\u0131nda ger\u00e7ek bir devrim niteli\u011findedir.<\/p>\n<p>Bu makalede g\u00f6rd\u00fc\u011f\u00fcm\u00fcz gibi, AWS Glue; Data Catalog ile veri ke\u015ffini otomatikle\u015ftiren Crawlers'\u0131, PySpark'\u0131n g\u00fcc\u00fcn\u00fc kullanan esnek ETL \u0130\u015fleri'ni ve sunucusuz mimarinin getirdi\u011fi maliyet etkinli\u011fi ile \u00f6l\u00e7eklenebilirli\u011fi bir araya getirerek veri entegrasyon s\u00fcre\u00e7lerini \"kolayla\u015ft\u0131r\u0131r\". Bir e-ticaret \u015firketinin vaka analizinde de net bir \u015fekilde g\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere, AWS Glue, da\u011f\u0131n\u0131k haldeki m\u00fc\u015fteri, \u00fcr\u00fcn ve sipari\u015f verilerini b\u00fct\u00fcnsel bir g\u00f6r\u00fcn\u00fcmde birle\u015ftirerek, i\u015fletmelere daha h\u0131zl\u0131 ve daha do\u011fru karar alma yetene\u011fi kazand\u0131r\u0131r. Performans optimizasyonu, maliyet y\u00f6netimi ve ileri d\u00fczey geli\u015ftirme ipu\u00e7lar\u0131yla da daha verimli bir kullan\u0131m\u0131n kap\u0131lar\u0131n\u0131 aralamaktad\u0131r.<\/p>\n<p>AWS Glue'u benimsemek, i\u015fletmelerin veri altyap\u0131lar\u0131n\u0131 modernle\u015ftirmeleri, veri g\u00f6l\u00fc ve veri ambar\u0131 stratejilerini ba\u015far\u0131yla uygulamalar\u0131 ve nihayetinde veriye dayal\u0131 inovasyonu h\u0131zland\u0131rmalar\u0131 i\u00e7in kritik bir ad\u0131md\u0131r. Veri karma\u015f\u0131kl\u0131\u011f\u0131 artmaya devam ederken, AWS Glue gibi \u00e7\u00f6z\u00fcmler, i\u015fletmelerin bu meydan okumalar\u0131n \u00fcstesinden gelmelerine ve verilerini stratejik bir avantaj haline getirmelerine yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<ol>\n<li><strong>AWS Glue'u kullanmak i\u00e7in Apache Spark bilgisi gerekli midir?<\/strong>\n<p>Temel seviyede Spark (\u00f6zellikle PySpark) bilgisi, Glue ETL i\u015flerini yazarken \u00e7ok faydal\u0131 olacakt\u0131r. Ancak, AWS Glue Studio gibi g\u00f6rsel ara\u00e7lar veya otomatik kod \u00fcretimi \u00f6zellikleri sayesinde, Spark bilgisi olmayan kullan\u0131c\u0131lar bile basit ETL i\u015fleri olu\u015fturabilir. Daha karma\u015f\u0131k d\u00f6n\u00fc\u015f\u00fcmler i\u00e7in PySpark \u00f6\u011frenmek, Glue'un t\u00fcm potansiyelinden yararlanman\u0131z\u0131 sa\u011flar.<\/p>\n<\/li>\n<li><strong>AWS Glue, ger\u00e7ek zamanl\u0131 veri ak\u0131\u015f\u0131 senaryolar\u0131nda kullan\u0131labilir mi?<\/strong>\n<p>Evet, AWS Glue, ger\u00e7ek zamanl\u0131 veri ak\u0131\u015f\u0131 senaryolar\u0131nda da kullan\u0131labilir. Amazon Kinesis veya Apache Kafka gibi ak\u0131\u015f veri kaynaklar\u0131ndan veri okuyabilen \"Streaming ETL Jobs\" (Ak\u0131\u015f ETL \u0130\u015fleri) \u00f6zelli\u011fi bulunmaktad\u0131r. Bu i\u015fler, mikro-batchler halinde s\u00fcrekli olarak veri i\u015fleyerek d\u00fc\u015f\u00fck gecikmeli veri entegrasyonu sa\u011flar.<\/p>\n<\/li>\n<li><strong>AWS Glue hangi veri formatlar\u0131n\u0131 destekler?<\/strong>\n<p>AWS Glue, CSV, JSON, Parquet, ORC, Avro gibi yayg\u0131n yap\u0131land\u0131r\u0131lm\u0131\u015f ve yar\u0131 yap\u0131land\u0131r\u0131lm\u0131\u015f veri formatlar\u0131n\u0131n yan\u0131 s\u0131ra, ili\u015fkisel veritaban\u0131 tablolar\u0131n\u0131 ve daha bir\u00e7ok format\u0131 destekler. Bu esneklik, \u00e7ok \u00e7e\u015fitli veri kaynaklar\u0131ndan gelen verileri kolayca entegre etmenize olanak tan\u0131r.<\/p>\n<\/li>\n<li><strong>AWS Glue'un maliyeti nas\u0131l hesaplan\u0131r?<\/strong>\n<p>AWS Glue, kulland\u0131\u011f\u0131n\u0131z kaynaklar i\u00e7in \u00f6deme yapt\u0131\u011f\u0131n\u0131z sunucusuz bir hizmettir. Maliyet, \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131z ETL i\u015flerinin s\u00fcresine ve t\u00fcketilen DPU (Data Processing Units) miktar\u0131na g\u00f6re hesaplan\u0131r. Crawler'lar ve Data Catalog'daki depolama da ek maliyet kalemleridir. En uygun maliyet i\u00e7in, i\u015flerinizi optimize etmek ve do\u011fru DPU say\u0131s\u0131n\u0131 se\u00e7mek \u00f6nemlidir.<\/p>\n<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla de\u011fi\u015fen i\u015f d\u00fcnyas\u0131nda, farkl\u0131 kaynaklardan gelen verileri bir araya getirmek ve analiz edilebilir hale getirmek i\u015fletmeler&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1406],"tags":[],"class_list":{"0":"post-30913","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-aws","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>ETL&#039;i Kolayla\u015ft\u0131rmak: AWS Glue ile \u00c7ok Kaynakl\u0131 Veri Entegrasyonu<\/title>\n<meta name=\"description\" content=\"G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla de\u011fi\u015fen i\u015f d\u00fcnyas\u0131nda, farkl\u0131 kaynaklardan gelen verileri bir araya getirmek ve analiz edilebilir hale getirmek i\u015fletmeler i\u00e7in hayati \u00f6nem ta\u015f\u0131maktad\u0131r. Ancak bu karma\u015f\u0131k veri entegrasyon s\u00fcre\u00e7leri genellikle zaman al\u0131c\u0131 ve maliyetli olabilir. \u0130\u015fte tam bu noktada, AWS Glue devreye girerek, veri m\u00fchendisli\u011fi s\u00fcre\u00e7lerinizi basitle\u015ftiren ve otomatikle\u015ftiren bulut tabanl\u0131 bir ETL hizmeti sunar. Bu makale, \u00e7ok kaynakl\u0131 verileri AWS Glue ile nas\u0131l kolayca entegre edebilece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131klayacak, ger\u00e7ek d\u00fcnya senaryolar\u0131yla zenginle\u015ftirilmi\u015f kapsaml\u0131 bir rehber niteli\u011findedir.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/etli-kolaylastirmak-aws-glue-ile-cok-kaynakli-veri-entegrasyonu\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ETL&#039;i Kolayla\u015ft\u0131rmak: AWS Glue ile \u00c7ok Kaynakl\u0131 Veri Entegrasyonu\" \/>\n<meta property=\"og:description\" content=\"G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla de\u011fi\u015fen i\u015f d\u00fcnyas\u0131nda, farkl\u0131 kaynaklardan gelen verileri bir araya getirmek ve analiz edilebilir hale getirmek i\u015fletmeler i\u00e7in hayati \u00f6nem ta\u015f\u0131maktad\u0131r. Ancak bu karma\u015f\u0131k veri entegrasyon s\u00fcre\u00e7leri genellikle zaman al\u0131c\u0131 ve maliyetli olabilir. \u0130\u015fte tam bu noktada, AWS Glue devreye girerek, veri m\u00fchendisli\u011fi s\u00fcre\u00e7lerinizi basitle\u015ftiren ve otomatikle\u015ftiren bulut tabanl\u0131 bir ETL hizmeti sunar. Bu makale, \u00e7ok kaynakl\u0131 verileri AWS Glue ile nas\u0131l kolayca entegre edebilece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131klayacak, ger\u00e7ek d\u00fcnya senaryolar\u0131yla zenginle\u015ftirilmi\u015f kapsaml\u0131 bir rehber niteli\u011findedir.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/etli-kolaylastirmak-aws-glue-ile-cok-kaynakli-veri-entegrasyonu\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-03T07:31:46+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"29 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/etli-kolaylastirmak-aws-glue-ile-cok-kaynakli-veri-entegrasyonu\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/etli-kolaylastirmak-aws-glue-ile-cok-kaynakli-veri-entegrasyonu\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"ETL&#8217;i Kolayla\u015ft\u0131rmak: AWS Glue ile \u00c7ok Kaynakl\u0131 Veri Entegrasyonu\",\"datePublished\":\"2025-10-03T07:31:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/etli-kolaylastirmak-aws-glue-ile-cok-kaynakli-veri-entegrasyonu\/\"},\"wordCount\":5420,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"AWS\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/etli-kolaylastirmak-aws-glue-ile-cok-kaynakli-veri-entegrasyonu\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/etli-kolaylastirmak-aws-glue-ile-cok-kaynakli-veri-entegrasyonu\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/etli-kolaylastirmak-aws-glue-ile-cok-kaynakli-veri-entegrasyonu\/\",\"name\":\"ETL'i Kolayla\u015ft\u0131rmak: AWS Glue ile \u00c7ok Kaynakl\u0131 Veri Entegrasyonu\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-03T07:31:46+00:00\",\"description\":\"G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla de\u011fi\u015fen i\u015f d\u00fcnyas\u0131nda, farkl\u0131 kaynaklardan gelen verileri bir araya getirmek ve analiz edilebilir hale getirmek i\u015fletmeler i\u00e7in hayati \u00f6nem ta\u015f\u0131maktad\u0131r. Ancak bu karma\u015f\u0131k veri entegrasyon s\u00fcre\u00e7leri genellikle zaman al\u0131c\u0131 ve maliyetli olabilir. \u0130\u015fte tam bu noktada, AWS Glue devreye girerek, veri m\u00fchendisli\u011fi s\u00fcre\u00e7lerinizi basitle\u015ftiren ve otomatikle\u015ftiren bulut tabanl\u0131 bir ETL hizmeti sunar. Bu makale, \u00e7ok kaynakl\u0131 verileri AWS Glue ile nas\u0131l kolayca entegre edebilece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131klayacak, ger\u00e7ek d\u00fcnya senaryolar\u0131yla zenginle\u015ftirilmi\u015f kapsaml\u0131 bir rehber niteli\u011findedir.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/etli-kolaylastirmak-aws-glue-ile-cok-kaynakli-veri-entegrasyonu\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/etli-kolaylastirmak-aws-glue-ile-cok-kaynakli-veri-entegrasyonu\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/etli-kolaylastirmak-aws-glue-ile-cok-kaynakli-veri-entegrasyonu\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"ETL&#8217;i Kolayla\u015ft\u0131rmak: AWS Glue ile \u00c7ok Kaynakl\u0131 Veri Entegrasyonu\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"ETL'i Kolayla\u015ft\u0131rmak: AWS Glue ile \u00c7ok Kaynakl\u0131 Veri Entegrasyonu","description":"G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla de\u011fi\u015fen i\u015f d\u00fcnyas\u0131nda, farkl\u0131 kaynaklardan gelen verileri bir araya getirmek ve analiz edilebilir hale getirmek i\u015fletmeler i\u00e7in hayati \u00f6nem ta\u015f\u0131maktad\u0131r. Ancak bu karma\u015f\u0131k veri entegrasyon s\u00fcre\u00e7leri genellikle zaman al\u0131c\u0131 ve maliyetli olabilir. \u0130\u015fte tam bu noktada, AWS Glue devreye girerek, veri m\u00fchendisli\u011fi s\u00fcre\u00e7lerinizi basitle\u015ftiren ve otomatikle\u015ftiren bulut tabanl\u0131 bir ETL hizmeti sunar. Bu makale, \u00e7ok kaynakl\u0131 verileri AWS Glue ile nas\u0131l kolayca entegre edebilece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131klayacak, ger\u00e7ek d\u00fcnya senaryolar\u0131yla zenginle\u015ftirilmi\u015f kapsaml\u0131 bir rehber niteli\u011findedir.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/etli-kolaylastirmak-aws-glue-ile-cok-kaynakli-veri-entegrasyonu\/","og_locale":"tr_TR","og_type":"article","og_title":"ETL'i Kolayla\u015ft\u0131rmak: AWS Glue ile \u00c7ok Kaynakl\u0131 Veri Entegrasyonu","og_description":"G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla de\u011fi\u015fen i\u015f d\u00fcnyas\u0131nda, farkl\u0131 kaynaklardan gelen verileri bir araya getirmek ve analiz edilebilir hale getirmek i\u015fletmeler i\u00e7in hayati \u00f6nem ta\u015f\u0131maktad\u0131r. Ancak bu karma\u015f\u0131k veri entegrasyon s\u00fcre\u00e7leri genellikle zaman al\u0131c\u0131 ve maliyetli olabilir. \u0130\u015fte tam bu noktada, AWS Glue devreye girerek, veri m\u00fchendisli\u011fi s\u00fcre\u00e7lerinizi basitle\u015ftiren ve otomatikle\u015ftiren bulut tabanl\u0131 bir ETL hizmeti sunar. Bu makale, \u00e7ok kaynakl\u0131 verileri AWS Glue ile nas\u0131l kolayca entegre edebilece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131klayacak, ger\u00e7ek d\u00fcnya senaryolar\u0131yla zenginle\u015ftirilmi\u015f kapsaml\u0131 bir rehber niteli\u011findedir.","og_url":"https:\/\/fatihsoysal.com\/blog\/etli-kolaylastirmak-aws-glue-ile-cok-kaynakli-veri-entegrasyonu\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-03T07:31:46+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"29 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/etli-kolaylastirmak-aws-glue-ile-cok-kaynakli-veri-entegrasyonu\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/etli-kolaylastirmak-aws-glue-ile-cok-kaynakli-veri-entegrasyonu\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"ETL&#8217;i Kolayla\u015ft\u0131rmak: AWS Glue ile \u00c7ok Kaynakl\u0131 Veri Entegrasyonu","datePublished":"2025-10-03T07:31:46+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/etli-kolaylastirmak-aws-glue-ile-cok-kaynakli-veri-entegrasyonu\/"},"wordCount":5420,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["AWS"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/etli-kolaylastirmak-aws-glue-ile-cok-kaynakli-veri-entegrasyonu\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/etli-kolaylastirmak-aws-glue-ile-cok-kaynakli-veri-entegrasyonu\/","url":"https:\/\/fatihsoysal.com\/blog\/etli-kolaylastirmak-aws-glue-ile-cok-kaynakli-veri-entegrasyonu\/","name":"ETL'i Kolayla\u015ft\u0131rmak: AWS Glue ile \u00c7ok Kaynakl\u0131 Veri Entegrasyonu","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-03T07:31:46+00:00","description":"G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla de\u011fi\u015fen i\u015f d\u00fcnyas\u0131nda, farkl\u0131 kaynaklardan gelen verileri bir araya getirmek ve analiz edilebilir hale getirmek i\u015fletmeler i\u00e7in hayati \u00f6nem ta\u015f\u0131maktad\u0131r. Ancak bu karma\u015f\u0131k veri entegrasyon s\u00fcre\u00e7leri genellikle zaman al\u0131c\u0131 ve maliyetli olabilir. \u0130\u015fte tam bu noktada, AWS Glue devreye girerek, veri m\u00fchendisli\u011fi s\u00fcre\u00e7lerinizi basitle\u015ftiren ve otomatikle\u015ftiren bulut tabanl\u0131 bir ETL hizmeti sunar. Bu makale, \u00e7ok kaynakl\u0131 verileri AWS Glue ile nas\u0131l kolayca entegre edebilece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131klayacak, ger\u00e7ek d\u00fcnya senaryolar\u0131yla zenginle\u015ftirilmi\u015f kapsaml\u0131 bir rehber niteli\u011findedir.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/etli-kolaylastirmak-aws-glue-ile-cok-kaynakli-veri-entegrasyonu\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/etli-kolaylastirmak-aws-glue-ile-cok-kaynakli-veri-entegrasyonu\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/etli-kolaylastirmak-aws-glue-ile-cok-kaynakli-veri-entegrasyonu\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"ETL&#8217;i Kolayla\u015ft\u0131rmak: AWS Glue ile \u00c7ok Kaynakl\u0131 Veri Entegrasyonu"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30913","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=30913"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30913\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=30913"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=30913"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=30913"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}