# Google BigQuery

Google BigQuery bir veri işlem hattında veya çoğaltma görevinde hedef veri platformu olarak kullanılabilir. Bir veri işlem hattında, verileri saklama, verileri dönüştürme, veri ambarları oluşturma ve veri kaydetme dahil olmak üzere hedef platformda çeşitli ELT işlemleri gerçekleştirilebilir. Diğer yandan çoğaltma görevi, temel dönüştürme yetenekleriyle ancak ELT işlemleri için destek olmadan, verilerin doğrudan bir kaynak sistemden bir hedef sisteme çoğaltılmasını içerir.

Google BigQuery hedefini ayarlamak şunları içerir:

* [Ön koşulları yerine getirme](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/bigquery-target.htm#Prerequi2)
* Google BigQuery bağlantısını yapılandırma

## Google BigQuery bağlantısını yapılandırma

Bağlayıcıyı yapılandırmak için aşağıdakileri yapın:

1. Bağlantılar içinde Bağlantı oluştur'a tıklayın.

2. Google BigQuery hedef bağlayıcısını seçin ve ardından aşağıdaki ayarları sağlayın:

### Veri hedefi

#### Veri ağ geçidi

Bilgi notuData Movement gateway bu abonelik kademesiyle desteklenmediğinden bu alan, Qlik Talend Cloud Başlangıç Kılavuzu aboneliğiyle kullanılamaz.

Bir Data Movement gateway yalnızca hedef veritabanına Qlik Cloud öğesinden erişilemiyorsa ve yalnızca bir Özel Bağlantı kullanılarak erişilebiliyorsa gereklidir (örneğin, bir Sanal Özel Bulutta bulunuyorsa). Bu durumda, hedef veritabanına erişmek istediğiniz Data Movement gateway öğesini seçin.

Kullanım durumunuza bağlı olarak, bu ya veri kaynağından veri taşımak için dağıtılanData Movement gateway ile aynı ya da farklı bir veri kaynağı olacaktır.

Data Movement gateway kullanım durumları hakkında bilgi için bkz. [Ne zaman Data Movement gateway gereklidir?](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm#top) ve [Yaygın kullanım durumları](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm#Common).

Hedef veritabanına doğrudan Qlik Cloud üzerinden erişilebiliyorsa Yok'u seçin.

Bilgi notuHedef veritabanına Data Movement gateway aracılığıyla erişirken, uygun sürücüyü Data Movement gateway makinesine de yüklemeniz gerekir. Ayrıntılar için aşağıdaki [Google BigQuery](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/bigquery-target.htm#Driver) bölümüne bakın.

### Bağlantı özellikleri

Hizmet hesabı anahtarı: BigQuery hizmet hesabı anahtarınızı oluşturduğunuzda indirilen JSON dosyasını yükleyin.

Konum: Qlik tarafından oluşturulan veri kümesinin yükleneceği yer. Diğer'i seçerseniz, Bölge adı alanına bölge adını girin. Desteklenen bölge adlarının listesi için bkz. [BigQuery konumları](https://cloud.google.com/bigquery/docs/locations).

Bilgi notuDiğer 'i seçmek, Data Movement gateway 2023.11.4 veya daha yeni bir sürümünü gerektirir.

### Ad

Bağlantı için görünen ad.

## Ön koşullar

### Verileri yerleştirme için gereken izinler

Hedef veri kümesini otomatik olarak oluşturmak için gereken izinler:

Veri kümesinin otomatik olarak oluşturulmasını istiyorsanız aşağıdaki izinler gereklidir:

BigQuery &gt; BigQuery Job User

BigQuery &gt; BigQuery Data Editor

Hedef veri kümesi zaten mevcut olduğunda gereken izinler:

Veri kümesi zaten mevcutsa aşağıdaki adımları uygulamanız gerekir:

1. Aşağıdaki izne sahip bir hizmet hesabı oluşturun:

   BigQuery &gt; BigQuery Job User

2. Kullanmak istediğiniz veri kümesine gidin ve ardından:

   1. Yeni oluşturduğunuz hizmet hesabını bir asıl (principal) olarak ekleyin.

   2. BigQuery Data Editor rolünü atayın.

### Sürücü kurulumu

Sürücü yalnızca veritabanına Data Movement gateway aracılığıyla erişiyorsanız gereklidir. Böyle bir durumda, sürücüyü Data Movement gateway makinesine yüklemeniz gerekir.

driver öğesini, sürücü yükleme yardımcı programını kullanarak (önerilir) veya manuel olarak yükleyebilirsiniz. Manuel yükleme, nadir görülen şekilde sürücü yükleme yardımcı programında bir sorunla karşılaşmanız durumunda denenmelidir.

#### Sürücüyü yüklemek için sürücü yükleme yardımcı programını kullanma

Bu bölümde, gerekli driver öğesinin nasıl yükleneceği açıklanmıştır. Sürece, gerekli driver öğesini otomatik olarak indirecek, yükleyecek ve yapılandıracak bir komut dosyası çalıştırma işlemi dahildir. Gerektiğinde driver öğesini güncellemek ve kaldırmak için de komut dosyaları çalıştırabilirsiniz.

Yüklemeyi hazırlama

* Python 3.6 veya daha yeni bir sürümünün Data Movement ağ geçidi sunucusunda yüklü olduğundan emin olun.

  Python, çoğu Linux dağıtımında önceden yüklenmiş şekilde sunulur. Aşağıdaki komutu çalıştırarak sisteminizde yüklü olan Python sürümünü öğrenebilirsiniz:

  python3 --version

driver uygulamasını yükleme

driver öğesini indirip yüklemek için:

1. Veri Hareketi ağ geçidi hizmetini durdurun:

   sudo systemctl stop repagent

2. İsteğe bağlı olarak hizmetin durduğunu doğrulayın:

   sudo systemctl status repagent

   Durum aşağıdaki gibi olmalıdır:

   Active: inactive (dead) since &lt;timestamp&gt; ago

3. Data Movement ağ geçidi makinesinde, çalışan dizini şu şekilde değiştirin:

   opt/qlik/gateway/movement/drivers/bin

4. Şu komutu çalıştırın:

   Söz Dizimi:

   ./install gbq

   driver yüklenemiyorsa (erişim kısıtlamaları veya teknik sorunlar nedeniyle) driver öğesini nereden indireceğiniz ve Data Movement ağ geçidi makinesinde nereye kopyalayacağınız konusunda size talimat veren bir mesaj görünür. Bu işlemi yaptıktan sonra install gbq komutunu tekrar çalıştırın.

   Aksi durumda, driver öğesinin EULA'sı görünür.

5. Şunlardan birini yapın:

   * EULA'da yavaşça gezinmek için [Enter] tuşuna tekrar tekrar basın.
   * EULA'da hızlı bir şekilde gezinmek için Boşluk tuşuna tekrar tekrar basın.
   * Lisans metninden çıkmak ve EULA kabul seçeneklerine ulaşmak için q tuşuna basın.

6. Şunlardan birini yapın:

   * EULA'yı kabul etmek ve yükleme işlemini başlatmak için "y" yazıp [Enter] tuşuna basın.

   * EULA'yı reddetmek ve yükleme işleminden çıkmak için "n" yazıp [Enter] tuşuna basın.

   * EULA'yı tekrar görüntülemek için "v" yazıp [Enter] tuşuna basın.

   driver yüklenir.

7. Yüklemenin tamamlanmasını ("Tamamlandı!" ifadesiyle belirtilir) bekleyin ve ardından Veri Hareketi ağ geçidi hizmetini başlatın:

   sudo systemctl start repagent

8. İsteğe bağlı olarak hizmetin başlatıldığını doğrulayın:

   sudo systemctl status repagent

   Durum aşağıdaki gibi olmalıdır:

   Active: active (running) since &lt;timestamp&gt; ago

driver öğesini güncelleme

Sağlanan driver öğesini yüklemeden önce driver öğesinin eski sürümlerini kaldırmak istiyorsanız güncelleme komutunu çalıştırın.

driver öğesini indirip güncellemek için:

1. Veri Hareketi ağ geçidi hizmetini durdurun:

   sudo systemctl stop repagent

2. İsteğe bağlı olarak hizmetin durduğunu doğrulayın:

   sudo systemctl status repagent

   Durum aşağıdaki gibi olmalıdır:

   Active: inactive (dead) since &lt;timestamp&gt; ago

3. Data Movement ağ geçidi makinesinde, çalışan dizini şu şekilde değiştirin:

   opt/qlik/gateway/movement/drivers/bin

4. Şu komutu çalıştırın:

   Söz Dizimi:

   ./update gbq

   driver yüklenemiyorsa (erişim kısıtlamaları veya teknik sorunlar nedeniyle) driver öğesini nereden indireceğiniz ve Data Movement ağ geçidi makinesinde nereye kopyalayacağınız konusunda size talimat veren bir mesaj görünür. Bu işlemi yaptıktan sonra update gbq komutunu tekrar çalıştırın.

   Aksi durumda, driver öğesinin EULA'sı görünür.

5. Şunlardan birini yapın:

   * EULA'da yavaşça gezinmek için [Enter] tuşuna tekrar tekrar basın.
   * EULA'da hızlı bir şekilde gezinmek için Boşluk tuşuna tekrar tekrar basın.
   * Lisans metninden çıkmak ve EULA kabul seçeneklerine ulaşmak için q tuşuna basın.

6. Şunlardan birini yapın:

   * EULA'yı kabul etmek ve yükleme işlemini başlatmak için "y" yazıp [Enter] tuşuna basın.
   * EULA'yı reddetmek ve yükleme işleminden çıkmak için "n" yazıp [Enter] tuşuna basın.
   * EULA'yı baştan incelemek için "v" yazıp [Enter] tuşuna basın.

   Eski driver kaldırılacak ve yeni driver yüklenecektir.

7. Yüklemenin tamamlanmasını ("Tamamlandı!" ifadesiyle belirtilir) bekleyin ve ardından Veri Hareketi ağ geçidi hizmetini başlatın:

   sudo systemctl start repagent

8. İsteğe bağlı olarak hizmetin başlatıldığını doğrulayın:

   sudo systemctl status repagent

   Durum aşağıdaki gibi olmalıdır:

   Active: active (running) since &lt;timestamp&gt; ago

driver öğesini kaldırma

driver öğesini kaldırmak istiyorsanız kaldırma komutunu çalıştırın.

driver öğesini kaldırmak için:

1. Bu bağlayıcıyı kullanmak için yapılandırılan tüm görevleri durdurun.

2. Data Movement ağ geçidi makinesinde, çalışan dizini şu şekilde değiştirin:

   opt/qlik/gateway/movement/drivers/bin

3. Şu komutu çalıştırın:

   Söz Dizimi:

   ./uninstall gbq

   driver kaldırılacaktır.

#### Sürücüyü manuel olarak yükleme

driver öğesini manuel olarak yüklemeyi yalnızca otomatik sürücü yükleme başarıyla tamamlanmadığında denemelisiniz.

Hem ODBC sürücüsünü hem de JDBC sürücüsünü yüklemeniz gerekir.

ODBC sürücüsünü yükleme

Data Movement gateway yüklendikten sonra SimbaODBCDriverforGoogleBigQuery\_&lt;version&gt;-Linux.tar.gz ve google-cloud-sdk-&lt;version&gt;-linux-x86\_64.tar.gz dosyalarını indirin. Bu dosyalar için doğrudan indirme bağlantılarını /opt/qlik/gateway/movement/drivers/manifests/gbq.yaml. içindeki binary-artifacts altında bulabilirsiniz. İndirme işlemi tamamlandıktan sonra dosyaları Data Movement gateway makinesine kopyalayın.

1. Veri Hareketi ağ geçidi hizmetini durdurun:

   sudo systemctl stop repagent

2. İsteğe bağlı olarak, hizmetin durduğunu doğrulayın:

   sudo systemctl status repagent

   Durum aşağıdaki gibi olmalıdır:

   Active: inactive (dead) since &lt;timestamp&gt; ago

3. Şu dosyayı:

   SimbaODBCDriverforGoogleBigQuery\_&lt;version&gt;.tar.gz

   şuraya ayıklayın:

   /opt/SimbaODBCDriverforGoogleBigQuery\_&lt;version&gt;-Linux

4. GoogleBigQueryODBC.did ve simba.googlebigqueryodbc.ini dosyalarını Simba ODBC sürücüsü dizini altındaki lib dizinine taşıyın.

   Örnek:

   Dosyaları şuradan taşıyın:

   /opt/SimbaODBCDriverforGoogleBigQuery\_&lt;version&gt;-Linux/setup

   şuraya:

   /opt/SimbaODBCDriverforGoogleBigQuery\_&lt;version&gt;-Linux/SimbaODBCDriverforGoogleBigQuery64\_&lt;version&gt;/lib

5. simba.googlebigqueryodbc.ini dosyasını aşağıdaki gibi düzenleyin:

   1. ` ErrorMessagesPath  `değerini ODBC mesajlarını içeren XML dosyasının yolu ile değiştirin. Varsayılan konum şudur:

      `ErrorMessagesPath=/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/ErrorMessages`

   2. `DriverManagerEncoding` değerini `UTF-16` olarak değiştirin.

6. Veri Hareketi ağ geçidi bin dizininde bulunan site\_arep\_login.sh dosyasına aşağıdaki yolu ekleyin:

   export LD\_LIBRARY\_PATH=$LD\_LIBRARY\_PATH:/opt/SimbaODBCDriverforGoogleBigQuery\_&lt;version&gt;-Linux/SimbaODBCDriverforGoogleBigQuery64\_&lt;version&gt;/lib

7. /etc/odbcinst.ini dosyasını düzenleyin ve sürücü yolunu (yani sürücünün yüklü olduğu yolu) ekleyin:

   `[ODBC Drivers]`

   `Simba= Installed`

   `Simba ODBC Driver for Google BigQuery = Installed`

   `[Simba ODBC Driver for Google BigQuery]`

   `Description=Simba ODBC Driver for Google BigQuery(64-bit)`

   `Driver=/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/lib/libgooglebigqueryodbc_sb64.so`

8. google-cloud-sdk-&lt;version&gt;-linux-x86\_64.tar.gz dosyasını yükleyin.

9. Veri Hareketi ağ geçidi hizmetini başlatın:

   sudo systemctl start repagent

10. İsteğe bağlı olarak, hizmetin başladığını doğrulayın:

    sudo systemctl status repagent

    Durum aşağıdaki gibi olmalıdır:

    Active: active (running) since &lt;timestamp&gt; ago

JDBC sürücüsünü ve bağımlılıklarını yükleme

1. /opt/qlik/gateway/movement/drivers/manifests/gbq.yaml içindeki binary-artifacts altında listelenen aşağıdaki ZIP dosyasını ve JAR dosyalarını indirin:

   * https://repo1.maven.org/maven2/com/google/cloud/google-cloud-bigquery/&lt;version&gt;/google-cloud-bigquery-&lt;version&gt;.jar
   * https://repo1.maven.org/maven2/com/google/cloud/google-cloud-storage/&lt;version&gt;/google-cloud-storage-&lt;version&gt;.jar
   * https://storage.googleapis.com/simba-bq-release/jdbc/SimbaJDBCDriverforGoogleBigQuery&lt;version&gt;.zip

   JAR dosyalarını Data Movement gateway makinesindeki aşağıdaki klasöre kopyalayın ve SimbaJDBCDriverforGoogleBigQuery&lt;version&gt;.zip içindeki JAR dosyalarını aynı klasöre ayıklayın:

   /opt/qlik/gateway/movement/qcs\_agents/qdi-db-commands/lib

2. [Hizmeti yeniden başlatma](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/dm-gateway-managing.htm#Restarti2) bölümünde açıklanan komutu çalıştırarak Data Movement gateway hizmetini yeniden başlatın.

### Bağlantı noktası

Giden iletişim için güvenlik duvarı bağlantı noktası 443'ün açılması gerekir.

## Veri türleri

Parametreli veri türü uzunluğu varsayılan değerlerle ayarlanacaktır:

* STRING: 8192 (uzunluk)

* BYTES: 8192 (uzunluk)

* NUMERIC: Kesinlik: 38, Ölçek: 9

* BIGDECIMAL: Kesinlik: 76, Ölçek: 38

Aşağıdaki tablo, Qlik Cloud kullanıldığında desteklenen Google BigQuery veri türlerini ve Qlik Cloud veri türlerinden varsayılan eşlemeyi gösterir.

Yerel veri türü bilgileri korunur ve veri kümesi görünümlerinde Yerel veri türü sütununda görüntülenir. Sütun görünür değilse veri kümesi görünümünün sütun seçicisini açmanız ve Yerel veri türü sütununu seçmeniz gerekir.

Desteklenen veri türleri

| Qlik Cloud veri türleri | Google BigQuery veri türleri |
| --- | --- |
| BOOLEAN | BOOL |
| BYTES | BYTES (Bayt cinsinden uzunluk) |
| DATE | DATE |
| TIME | TIME |
| DATETIME | TIMESTAMP<br><br>Ölçek &gt; 7 ise: STRING(37)<br><br>Aksi takdirde, giriş sütunu 6'dan daha düşük bir kesinlik kullansa bile kesinlik her zaman 6'dır. |
| INT1 | TINYINT |
| INT2 | SMALLINT |
| INT4 | INTEGER |
| INT8 | BIGINT |
| NUMERIC | NUMERIC (kesinlik, ölçek) |
| REAL4 | FLOAT64 |
| REAL8 | FLOAT64 |
| UINT1 | TINYINT |
| UINT2 | SMALLINT |
| UINT4 | INTEGER |
| UINT8 | BIGINT |
| STRING | STRING<br><br>Alt tür JSON ise:<br><br>JSON |
| WSTRING | STRING<br><br>Alt tür JSON ise:<br><br>JSON |
| BLOB | BYTES |
| NCLOB | STRING<br><br>Alt tür JSON ise:<br><br>JSON |
| CLOB | STRING<br><br>Alt tür JSON ise:<br><br>JSON |
| ARRAY | STRING |
| STRUCT | STRING |
| GEOGRAPHY | STRING |
| JSON | JSON |

## Tüm veri görevleri için sınırlamalar ve dikkat edilecek hususlar

* Aşağıdaki DDL'ler desteklenmez:

  * Sütunu bırak
  * Sütunu yeniden adlandır
  * Sütun veri türünü değiştir

* Birincil Anahtarı veya Benzersiz Dizini olmayan kaynak tablolardan değişikliklerin yakalanması desteklenmez. Bu tür tablolardan değişiklikleri yakalamanız gerekiyorsa, bir dönüştürme kullanarak bir Birincil Anahtar ekleyebilirsiniz. Ayrıca, Birincil Anahtar veya Benzersiz Dizin sütunları NULL içeremez. Bu tür sütunların NULL değerlerle doldurulacağını biliyorsanız, NULL'ları boş bırakılamayan değerlerle değiştirmek için bir dönüştürme tanımlayın.

* JSON alanları birincil anahtar olarak desteklenmez.

## Yalnızca çoğaltma görevleri için sınırlamalar ve dikkat edilecek hususlar

* İşlemsel Değişiklikleri uygula modu desteklenmez.

* Aşağıdaki görev ayarları yapılandırmasıyla, çoğaltma görevi bir UPDATE yerine bir DELETE işlemi ve ardından bir INSERT işlemi gerçekleştirecektir:

  * Değişiklikleri uygula modu Toplu iş için optimize edilmiş olarak ayarlanmıştır.

  * Değişiklikleri SQL MERGE kullanarak uygula seçeneği seçili değildir.

  * Çakışmaları Uygulamak için UPDATE'ler hata işleme şu şekilde ayarlanmıştır: Bir UPDATE uygulamak için kayıt bulunamadı: Eksik hedef kaydı INSERT ile ekle.

  Google Cloud BigQuery geri almayı desteklemediğinden, çoğaltma görevinin güncellenen satırı ekleyememesi durumunda veriler hedeften silinir.