Kayıtlar

Web Scraping Using Python

Herkese merhaba, Bu yazımızda Python kullanarak Web Scraping işlemlerini inceleyeceğiz. Web sitelerinden otomatik olarak veri çekme isteğimiz her geçen gün artarak devam etmektedir. Çoğu zaman web sitelerinden veri çekme ve bunları analizlerimizde kullanma ihtiyacı ile karşı karşıya oluruz. Buna bir örnek vermek gerekirse makalemizde de değineceğimiz üzere Gittigidiyor gibi bir e-ticaret sitesinde ihtiyacımız olan alanlarla ilgili satış bilgilerini çekip daha sonrasında bunların üzerinde çeşitli analizler yapabiliriz. Web sitelerinden verileri çekmek için çeşitli yöntemler vardır. En iyi yöntem ise API'lerin kullanılmasıdır. Neredeyse bütün sosyal medya siteleri (Facebook, Twitter, Instagram gibi bunların dışında da büyük verileri barındıran Google gibi), sitelerine erişime izin vermek için API sağlar. Eğer istediğiniz verileri API ile çekebiliyorsanız, bu yöntem Web Scraping işlemine göre daha çok tercih edilir. Maalesef her web sitesi API kolaylığı sağlamamaktadır. Bazı we

SQL Server Analysis Services 2012’de Multidimensional Model ve Tabular Model

Bu yazımızda SSAS’de Tabular model ve Multidimensional model kavramlarını inceleyip, farklarından bahsedeceğim. Veri analizi için hangi modelin hangi durumlarda daha uygun olacağını ortaya koymaya çalışacağız. Farklarından bahsetmeden önce bu modellerin ne olduğunu inceleyelim: Multidimensional Model (geleneksel OLAP kübü):  İlişkisel bir veritabanından çok farklı yapıda olan ve çok hızlı raporlar üretmemizi sağlayan bir OLAP kübüdür. Geçmişte bu model multidimensional veritabanları oluşturabilmemiz için tek çözümdü. SQL Server 2005’den SQL Server 2016’ya kadar yapısı itibariyle çok değişmedi. SSAS’e yeni eklenen özellikler incelenirse çoğunun Tabular model’le ilgili olduğu görülür. Tabular Model (in-memory küb): SSAS’deki in-memory veritabanıdır. SQL Server 2012’de tanıtıldı ve her yeni sürümü yeni özellikler içeriyor. Multidimensional Model’den farklı bir engine (xVelocity) kullanır. Multidimensional model satır bazlı depolama yaparken, Tabular model verileri daha

Natural Key ve Surrogate Key Nedir?

Resim
Bir tablodaki Primary Key olacak alanı seçmek database performansı için gerçekten önemlidir. Primary Key; her tabloda en fazla 1 adet bulunur, null değer alamaz, unique (tekil) değerler alır, verileri değiştirilemez. Primary key içerdiği verilere göre Natural veya Surrogate key olur. Natural Key Tablo ile mantıksal olarak ilişkilidir.İçerdiği veri, tablonun diğer sütunlarındaki veriler ile ilişkilidir. Tekil değerler içerir. Natural key, dış dünyadaki gerçek verileri temsil eder. Örneğin; TC kimlik numarası, bir kitabın ISBN numarası, bir ürünün ismi gibi... Surrogate Key Surrogate key içeren veriler tablo için mantıklı herhangi bir anlama sahip değildirler. Surrogate key'ler, veritabanı yönetim sistemleri tarafından üretilirler. (Oracle, sequence'leri kullanır; Sql server, identity column özelliğini kullanır; MySql auto_increment özelliğini kullanır.) Genel olarak kayıt eklenmeden önce üretilirler ve çoğu zaman numeric tiptedirler. Tekil değerler içerir. Natural Key vs. S

[Microsoft][ODBC Excel Driver] Syntax error (missing operator) in query expression 'case when ...', Odbc driver returned an error (SQLExecDirectW).

Resim
OBIEE 11g'de Excel'den çektiğimiz veriler ile http://localhost:7001/analytics sayfasında yeni bir analiz oluşturmak istediğimizde bu hata ile karşılaşabiliriz. Bu hata, analize eklenen bir sütun üzerindeyken Edit Formula ekranına case when ifadesi yazdığımızda ortaya çıkar. (Genellikle iç içe case ifadeleri varsa ve bu ifadeler numeric değilse ortaya çıkar.) Bunun nedeni Excel'in Case ifadelerini desteklemiyor olmasıdır. Hatanın ayrıntılı hali: Error Codes: OPR4ONWY:U9IM8TAC:OI2DL65P State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 16001] ODBC error state: 37000 code: -3100 message: [Microsoft][ODBC Excel Driver] Syntax error (missing operator) in query expression 'CASE WHEN PRODUCT."NAME"='Bag' THEN 1 ..' [nQSError: 16014] SQL statement preparation failed. (HY000) SQL Issued: SELECT Product.Name saw_0, CASE WHEN PRODUCT."NAME"='Bag' THEN 1 ... E

OBIEE'de Excel Dosyasını Import Etme

Resim
Bu yazımda OBIEE Administration Tool'da Excel dosyasını veri kaynağı olarak kullanmayı anlatacağım. Bunun için aşağıdaki adımlar sırasıyla gerçekleştirilir: İlk önce veri kaynağı olarak eklemek istediğimiz Excel dosyası açılır. Ekleyeceğimiz veriler Excel'in Aralığı Adlandır özelliğiyle isimlendirilir.   Denetim Masası->Yönetimsel Araçlar-> Data Sources (ODBC)-> System DSN tabında Add butonuna tıklanır ve veri kaynağı olarak Microsoft Excel Driver seçilir. Veri kaynağı isimlendirilir ve Çalışma Kitabı Seç butonuna tıklanır. Excel dosyası seçilir. OBI Administration Tool açılır ve Physical Layer'da sağ tuş ile yeni bir database eklenir. Connection Pools sekmesine tıklanarak yeni bir bağlantı eklenir. Data Source Name'de eklenen Excel veri kaynağı seçilir. Database ve connection pool oluşturulduktan sonra Physical Layer'da connection pool üzerinde sağ tuş Import Metadata'ya tıklanır. Gelen ekranda Excel veri kaynağı seçilir. Physica

nQSError: 37005 Transnational Update Failed Hatası

Çözümü gerçekten basit olan fakat OBI'da başlangıç düzeyinde olanlar için görüldüğünde sinir bozan bir hata:) Genellikle OBIEE Administration Tool'da online mode da iken physical layer'a database ekleyip kaydettiğimizde bu hata karşımıza çıkar. Hatanın kaynağı tablo isimleri olabilir. (Benim karşılaştıklarım öyleydi.) C:\Middleware\instances\instance1\diagnostics\logs\OracleBIServerComponent\coreapplication_obis1 yolunda bulunan NQServer.log dosyasında "has name with leading or trailing space(s)." adındaki hata bulunur. Bu hataya neden olan database içindeki tablo ve sütun ismi log dosyasında yazılıdır. O sütun ismi düzeltildikten sonra bu hatayla bir daha karşılaşmayız. ( Yani  öyle umuyorum:) ) İyi Çalışmalar

Oracle Linux Üzerine Oracle Database 11g Enterprise Edition Kurulumu

Resim
Bilgisayarımıza Oracle Linux'u : CD veya DVD'den boot edecek şekilde Talip hocamızın makalesinde anlattığı gibi:   http://taliphakanozturk.wordpress.com/2011/11/04/oracle-linux-6-1-kurulumu/ Virtualbox ile oluşturacağımız sanal makinamızın üzerine: http://melihsavdert.blogspot.com/2013/06/adm-adm-oracle-vm-virtualbox-uzerine.html CD veya DVD'den boot edecek şekilde kuracağımız linux işletim sistemi için diskleri kendimiz bölümleyebileceğimiz şekilde, disk partition ile: http://www.koraykey.com/?p=228 makalelerinde anlatıldığı üzere kurabiliriz. NOT: Virtualbox ile sanal makinemizi oluşturup; Oracle Linux işletim sistemi için gerekli konfigürasyonları yaptıktan sonra kuruluma geçtiğimizde, siyah ekranla karşılaşıp makaledeki resimlerde de görüldüğü gibi kurulum GUI ekranından değilde konsol ekranından devam ediyorsa; bilgisayarınız, oracle linux işletim sisteminin sistem gereksinimini karşılamıyor olabilir. Özellikle ram miktarı az olabilir. (Oracle Linux 6.1 i