# Amazon S3

Amazon Simple Storage Service (Amazon S3), sektör lideri ölçeklenebilirlik, veri kullanılabilirliği, güvenlik ve performans sunan bir nesne depolama hizmetidir.

## Kimlik doğrulaması için hazırlanma

verilerinize erişmek için hesap oturum bilgilerinizle bağlantının kimliğini doğrulamanız gerekir.

Bilgi notuKullandığınız hesabın, almak istediğiniz tablolar için okuma erişimine sahip olduğundan emin olun.

Amazon S3 bağlantısı kurmak için AWS Kimlik Erişim Yönetimi'nde (IAM) politikalar oluşturmanıza, roller oluşturmanıza ve rollere politikalar eklemenize olanak tanıyan izinlere ihtiyacınız vardır. Bu, S3 demetinize yetki vermek için gereklidir:

* [Bir IAM politikası oluşturma](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/Connecting-Amazon-S3.htm#Creating).
* [Bir IAM Rolü Oluşturma](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/Connecting-Amazon-S3.htm#Creating2).

### Bir IAM politikası oluşturma

[IAM politikası](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json), demet kaynaklarına yönelik izinleri yönetmek için kullanılan JSON tabanlı bir erişim ilkesi dilidir.

Amazon S3 izinleri

| İzin adı | İşlem | Açıklama |
| --- | --- | --- |
| **s3:GetObject** | **[GET Nesnesi](http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html)** | Amazon S3'ten nesnelerin alınmasına izin verir. |
| **s3:GetObject** | **[HEAD Nesnesi](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectHEAD.html)** | Nesnenin kendisini döndürmeden bir nesneden meta verilerin alınmasına izin verir. |
| **s3:ListBucket** | **[GET Demeti (Liste Nesneleri)](http://docs.aws.amazon.com/AmazonS3/latest/API/v2-RESTBucketGET.html)** | Bir demetteki nesnelerin bir kısmının veya tamamının (1.000 adede kadar) döndürülmesini sağlar. |
| **s3:ListBucket** | **[HEAD Demeti](http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketHEAD.html)** | Bir demetin var olup olmadığını ve erişime izin verilip verilmediğini belirlemek için kullanılır. |

IAM politikası oluşturmak için:

1. AWS'de, **Hizmetler** menüsüne tıklayıp IAM yazarak [IAM hizmetine gidin](https://console.aws.amazon.com/iam/home#/home).
2. Sonuçlarda görüntülendiğinde IAM'ye tıklayın.
3. Sayfanın sol tarafındaki menüden Politikalar'a tıklayın.
4. Politika Oluştur'a tıklayın.
5. Politika Oluştur sayfasında, JSON sekmesine tıklayın.
6. Metin alanında o anda bulunan her şeyi seçin ve silin.
7. Metin alanına aşağıdaki JSON'u yapıştırın ve `MyBucketName` yerine demetinizin adını yazın:
   ```
   {
       "Version": "2012-10-17",
       "Statement": [
           {
               "Sid": "",
               "Effect": "Allow",
               "Action": [
               "s3:GetObject",
               "s3:ListBucket"
               ],
               "Resource": [
               "arn:aws:s3:::MyBucketName",
               "arn:aws:s3:::MyBucketName/*"
               ]
           }
       ]
   }
   ```
8. Politikayı gözden geçir'e tıklayın.
9. Politikayı Gözden Geçir sayfasında, politikaya bir ad verin. Örneğin: `qlik_amazon_s3`.
10. Politika Oluştur'a tıklayın.

### Bir IAM rolü oluşturma

Bilgi notu

Bu adımı tamamlamak için şu AWS IAM izinlerine ihtiyacınız vardır: `CreateRole` ve `AttachRolePolicy`. Daha fazla bilgi için [Amazon'un belgelerine](https://docs.aws.amazon.com/IAM/latest/APIReference/API_Operations.html) bakın.

Birden fazla Amazon S3 entegrasyonu oluşturuyorsanız bu adımı, bağladığınız her entegrasyon için tamamlamanız gerekir.

1. AWS'de [IAM Rolleri](https://console.aws.amazon.com/iam/home#/roles) sayfasına gidin.
2. Rol oluştur'a tıklayın.
3. Rol Oluştur sayfasında:
   1. Güvenilen varlık türü seçin bölümünde Başka bir AWS hesabı seçeneğine tıklayın.

   2. Hesap Kimliği alanına `338144066592` öğesini yapıştırın.

   3. Seçenekler bölümünde, Harici kimlik gerektir onay kutusunu seçin.

   4. Görüntülenen Harici Kimlik alanına `qlik_connection_<tenant-id>` öğesini yapıştırın ve `<tenant-id>` yerine kiracı kimliğinizi yazın.

      Kiracı kimliğinizi bulmak için [Kiracı bilgilerini bulma](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/qcs-account-information.htm) bölümüne bakın.

   5. İleri: İzinler'e tıklayın.
4. İzin ekle sayfasında:
   1. [IAM politikası oluşturma](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/Connecting-Amazon-S3.htm#Creating) bölümünde oluşturduğunuz politikayı arayın.
   2. Bulduğunuzda, tabloda yanındaki kutuyu işaretleyin.
   3. İleri: Etiketler'e tıklayın.
5. Herhangi bir etiket girmek istiyorsanız bunu Etiket ekle sayfasında yapın. Aksi takdirde İleri: İnceleme'ye tıklayın.
6. İnceleme sayfasında:
   1. Rol adı alanına `qlik_s3_<tenant-id>` öğesini yapıştırın ve `<tenant-id>` yerine kiracı kimliğinizi yazın.

      Kiracı kimliğinizi bulmak için [Kiracı bilgilerini bulma](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/qcs-account-information.htm) bölümüne bakın.

   2. Rol açıklaması alanına bir açıklama girin. Örneğin: `Qlik role for Amazon S3 integration.`

   3. Rol oluştur'a tıklayın.

### Arama deseni tanımlama

Arama Deseni alanı, Qlik öğesinin dosyaları seçmek ve çoğaltmak için kullanması gereken arama kriterlerini tanımlar. Bu alan, tek bir dosyayı veya birden fazla dosyayı dahil etmek için kullanılabilen düzenli ifadeleri kabul eder.

Bir arama deseni oluştururken aşağıdakileri aklınızda bulundurun:

* Tek bir tablo için birden fazla dosya eklerken, her dosya aynı başlık satırı değerlerine sahip olmalıdır.
* Nokta (`.`) gibi özel karakterlerin düzenli ifadelerde özel anlamları vardır. Tam olarak eşleşmeleri için kaçış karakteri gerekecektir. Örneğin: `.\`
* Qlik, söz dizimi diğer çeşitlerden farklı olabilen düzenli ifadeler için Python kullanır. Entegrasyonu kaydetmeden önce ifadelerinizi test etmek için [PyRegex](http://www.pyregex.com/) kullanmayı deneyin.
* Parquet (`.parquet`) ve Arvo (`.arvo`) arama desenleri de desteklenmektedir.
* Arama desenleri, dosyalardaki verilerin nasıl güncellendiğini hesaba katmalıdır. Bu örnekleri inceleyin:

| **Senaryo** | Tek dosya, periyodik olarak güncellenir | Günlük olarak oluşturulan birden fazla dosya |
| --- | --- | --- |
| **Güncellemeler nasıl yapılır?** | Tek bir JSONL dosyası, yeni ve güncellenmiş müşteri verileriyle periyodik olarak güncellenir. | Her gün yeni ve güncellenmiş müşteri verilerini içeren yeni bir CSV dosyası oluşturulur. Eski dosyalar oluşturulduktan sonra asla güncellenmez. |
| **Dosya adı** | `customers.jsonl` | `customers-[STRING].csv`, burada `[STRING]` benzersiz, rastgele bir dizedir |
| **Arama deseni** | Yalnızca bir dosya olacağından, S3 demetinizdeki dosyanın tam adını girebilirsiniz:<br><br>```<br>customers\.jsonl<br>```<br><br>`customers\.jsonl`customers\.\.jsonl | Yeni ve güncellenmiş dosyaların tanımlandığından emin olmak için, dosya adındaki dizeden bağımsız olarak `customers` ile başlayan tüm dosyalarla eşleşecek bir arama deseni girmek isteyebilirsiniz:<br><br>```<br>(customers-).*\.csv<br>```<br><br>`(customers-).*\.csv`((customers-)).\*\*\.\.csv |
| **Eşleşir** | `customer.jsonl`, tam olarak | <ul> <li><code>customers-reQDSwNG6U.csv</code> </li> <li><code>customers-xaPTXfN4tD.csv</code> </li> <li><code>customers-MBJMhCbNCp.csv</code> </li> <li>vb. ilgili özelliklerde yapısal kısımlar belirtin.</li> </ul> |

### Dosya gereklilikleri

| İlk satır başlığı (yalnızca CSV dosyaları) | <ul> <li>Her dosyanın sütun adlarını içeren bir ilk satır başlığı olmalıdır. Herhangi bir dosyadaki ilk satır, başlık satırı olarak kabul edilir ve bu değerleri seçim için kullanılabilir sütunlar olarak sunar.                        </li> <li>Bir tabloya birden çok dosya dahil ediliyorsa, ilk satır başlık değerleri aynı olan dosyalar. <span>Amazon S3</span> entegrasyonu, birkaç dosyayı tek bir hedef tabloya eşlemenize olanak tanır. Üstbilgi satırı değerleri bir tablonun şemasını belirlemek için kullanılır. En iyi sonuçlar için her dosya aynı başlık satırı değerlerine sahip olmalıdır.                            <p>Bu, birden fazla tablo yapılandırmaktan farklıdır. Örnekler için <a href="https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/Connecting-Amazon-S3.htm#Defining">Arama desenini tanımlama</a> bölümüne bakın.</p></li> </ul> |
| --- | --- |
| Dosya türleri | <ul> <li>CSV (<code>.csv</code>)</li> <li>Metin (<code>.txt</code>)</li> <li>JSONL (<code>.jsonl</code>)</li> <li>Parquet (<code>.parquet</code>)</li> <li>Arvo (<code>.arvo</code>)						<p>Arvo dosyalarının desteklenmesi için bir şema içermeleri gerekir.</p></li> </ul> |
| Sıkıştırma türleri | Bu dosyalar doğru şekilde sıkıştırılmış olmalıdır, aksi takdirde çıkarma sırasında hatalar ortaya çıkacaktır.<br><br><ul> <li>gzip sıkıştırılmış dosyalar (<code>.gz</code>)</li> </ul> |
| Sınırlayıcılar (yalnızca CSV dosyaları) | <ul> <li>Virgül (<code>,</code>)</li> <li>Sekme (<code>/t</code>)</li> <li>Hat (<code>\|</code>)</li> <li>Noktalı virgül (<code>;</code>)</li> </ul> |
| Karakter kodlaması | UTF-8 (yalnızca `.csv`, `.txt` ve `.jsonl`)<br><br>Bilgi notu`.parquet` ve `.arvo` dosyaları ham ikili dosyalardır. |

## Bağlantı oluşturma

Daha fazla bilgi için bk. [SaaS uygulamalarına bağlanma](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Landing/connecting-web-applications.htm).

1. Zorunlu bağlantı özelliklerini doldurun.

2. Bağlantı adı kısmında bağlantı için bir ad sağlayın.

3. Oluşturulduğu zaman bağlantı için meta verileri tanımlamak üzere Bağlantı meta verilerini aç'ı seçin.

4. Oluştur'a tıklayın.

Bağlantı ayarları

| Ayar | Açıklama |
| --- | --- |
| Veri ağ geçidi | Kullanım durumunuz gerektiriyorsa bir Data Movement gateway seçin.<br><br>Bilgi notu<br><br>Qlik Talend Cloud Başlangıç Kılavuzu aboneliği Data Movement gateway desteklenmediğinden bu alan, söz konusu abonelikle kullanılamaz. Başka bir abonelik kademeniz varsa ve Data Movement gateway kullanmak istemiyorsanız Hiçbiri'ni seçin.<br><br>Data Movement gateway avantajları ve bunu gerektiren kullanım durumları hakkında bilgi için bkz. [Qlik Data Gateway - Data Movement](https://help.qlik.com/tr-TR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm). |
| Başlangıç Tarihi | Verilerin kaynağınızdan hedefinize çoğaltılması gereken tarihi `MM/DD/YYYY` biçiminde girin. |
| S3 Demeti | S3 demetinin adı. |
| AWS Hesap Kimliği | Demetin bulunduğu hesabın AWS hesap kimliği.<br><br>AWS hesap kimliğinizi AWS Yönetim Konsolu'nda Hesap ayrıntıları altında bulabilirsiniz. |
| Arama deseni | Tablonuza dahil edilecek dosyaları girin. Tek bir dosya adı veya düzenli bir ifade girebilirsiniz.<br><br>Örnek: `users\*.csv``products\*.jsonl`. |
| Dizin | Aramayı bu dizin yolunda sınırlandırın. Tanımlandığında, yalnızca bu konumdaki dosyalar aranacak ve arama deseniyle eşleşenler seçilecektir. Normal ifade kullanamazsınız.<br><br>Örnek: csv-exports-folder veya employee\_jsonl\_exports. |
| Tablo yapılandırması<br><br>Dahil etmek istediğiniz dosyaları belirterek bir tablo yapılandırın.<br><br>Birden fazla tablo yapılandırabilirsiniz. |  |
| Tablo adı | Tablo adı.<br><br>Her hedefin, tabloların nasıl adlandırılabileceğine ilişkin kendi kuralları vardır. Örneğin, Amazon Redshift tablo adları 127 karakteri geçemez. |
| Birincil anahtar | Benzersiz satırları veya kayıtları tanımlamak için birincil anahtarı girin. Birden fazla anahtar girdiğinizde değerleri ayırmak için virgül kullanın.<br><br><ul><li>CSV dosyaları için başlık alanlarını veya sütun adlarını girin.</li><li>JSONL dosyaları için öznitelik adlarını veya nesne anahtarlarını girin.</li></ul><br><br>Örnek: id, name. |
| Tarih saat alanlarını belirtme | Tablonuzda dize yerine datetime olarak görünmesi gereken değerleri girin.<br><br>Örnek: created\_at, modified\_at. |
| ayırıcı | Açılan listeden bir sınırlayıcıyı seçin. |