# Amazon S3

Amazon Simple Storage Service (Amazon S3) to usługa obiektowej pamięci masowej, która oferuje wiodącą w branży skalowalność, dostępność danych, bezpieczeństwo i wydajność.

## Przygotowanie do uwierzytelnienia

Aby uzyskać dostęp do swoich danych z , musisz uwierzytelnić połączenie za pomocą danych logowania do swojego konta.

InformacjaUpewnij się, że używane konto ma uprawnienia do odczytu interesujących Cię tabel.

Aby połączyć się z Amazon S3, potrzebne są uprawnienia w AWS Identity Access Management (IAM), które pozwalają na tworzenie zasad i ról oraz wiązanie zasad z rolami. Jest to wymagane do przyznania uprawnień do zasobnika S3:

* [Tworzenie zasady IAM](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/Connecting-Amazon-S3.htm#Creating).
* [Tworzenie roli IAM](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/Connecting-Amazon-S3.htm#Creating2).

### Tworzenie zasady IAM

[Zasada IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) to język zasad dostępu oparty na JSON, służący do zarządzania uprawnieniami do zasobów zasobnika.

Uprawnienia Amazon S3

| Nazwa uprawnienia | Operacja | Opis |
| --- | --- | --- |
| **s3:GetObject** | **[Obiekt GET](http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html)** | Umożliwia pobieranie obiektów z Amazon S3. |
| **s3:GetObject** | **[Obiekt HEAD](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectHEAD.html)** | Umożliwia pobieranie metadanych z obiektu bez zwracania samego obiektu. |
| **s3:ListBucket** | **[GET Zasobnik (lista obiektów)](http://docs.aws.amazon.com/AmazonS3/latest/API/v2-RESTBucketGET.html)** | Umożliwia zwrot niektórych lub wszystkich (do 1000) obiektów znajdujących się w zasobniku. |
| **s3:ListBucket** | **[zasobnik HEAD](http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketHEAD.html)** | Służy do określania, czy zasobnik istnieje i czy dostęp do niego jest dozwolony. |

Aby utworzyć zasadę IAM:

1. W AWS, [przejdź do usługi IAM](https://console.aws.amazon.com/iam/home#/home) klikając menu **Usługi** i wpisując IAM.
2. Kliknij IAM, gdy pojawi się w wynikach.
3. Kliknij opcję Zasady w menu po lewej stronie.
4. Kliknij Utwórz politykę.
5. Na stronie Utwórz zasadę kliknij kartę JSON.
6. Zaznacz wszystkie elementy znajdujące się w polu tekstowym i usuń je.
7. W polu tekstowym wklej poniższy kod JSON i zastąp `MyBucketName` nazwą swojego zasobnika:
   ```
   {
       "Version": "2012-10-17",
       "Statement": [
           {
               "Sid": "",
               "Effect": "Allow",
               "Action": [
               "s3:GetObject",
               "s3:ListBucket"
               ],
               "Resource": [
               "arn:aws:s3:::MyBucketName",
               "arn:aws:s3:::MyBucketName/*"
               ]
           }
       ]
   }
   ```
8. Kliknij opcję Przejrzyj zasadę.
9. Na stronie Przejrzyj zasadę nadaj zasadzie nazwę. Na przykład: `qlik_amazon_s3`.
10. Kliknij Utwórz politykę.

### Tworzenie roli IAM

Informacja

Aby wykonać ten krok, należy mieć następujące uprawnienia AWS IAM: `CreateRole` i `AttachRolePolicy`. Więcej informacji zawiera [dokumentacja Amazon](https://docs.aws.amazon.com/IAM/latest/APIReference/API_Operations.html).

Jeśli tworzysz wiele integracji Amazon S3, musisz wykonać ten krok dla każdej połączonej integracji.

1. W AWS przejdź do strony [Role IAM](https://console.aws.amazon.com/iam/home#/roles).
2. Kliknij Utwórz rolę.
3. Na stronie Utwórz rolę:
   1. W sekcji Wybierz typ zaufanego podmiotu kliknij opcję Inne konto AWS.

   2. W polu ID konta wklej `338144066592`.

   3. W sekcji Opcje zaznacz pole wyboru Wymagaj zewnętrznego ID.

   4. W wyświetlonym polu Zewnętrzny ID wklej `qlik_connection_<tenant-id>` i zastąp `<tenant-id>` swoim identyfikatorem dzierżawy.

      Aby znaleźć identyfikator dzierżawy, zobacz [Znajdowanie informacji o dzierżawie](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/qcs-account-information.htm).

   5. Kliknij przycisk Dalej: Uprawnienia.
4. Na stronie Dołącz uprawnienia:
   1. Wyszukaj zasadę utworzoną w sekcji [Tworzenie zasady IAM](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/Connecting-Amazon-S3.htm#Creating).
   2. Kiedy ją znajdziesz, zaznacz pole obok niej w tabeli.
   3. Kliknij przycisk Dalej: Tagi.
5. Jeśli chcesz wprowadzić jakiekolwiek tagi, zrób to na stronie Dodaj tagi. W przeciwnym razie kliknij Dalej: Przegląd.
6. Na stronie Przegląd:
   1. W polu Nazwa roli wklej `qlik_s3_<tenant-id>` i zastąp `<tenant-id>` swoim identyfikatorem dzierżawy.

      Aby znaleźć identyfikator dzierżawy, zobacz [Znajdowanie informacji o dzierżawie](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/qcs-account-information.htm).

   2. W polu Opis roli wprowadź opis. Na przykład: `Qlik role for Amazon S3 integration.`

   3. Kliknij Utwórz rolę.

### Definiowanie wzorca wyszukiwania

Pole Wzorzec wyszukiwania definiuje kryteria wyszukiwania, których Qlik powinien używać do wybierania i replikacji plików. To pole akceptuje wyrażenia regularne, które mogą być używane do dołączania pojedynczego pliku lub wielu plików.

Podczas tworzenia wzorca wyszukiwania należy mieć na uwadze następujące kwestie:

* W przypadku dołączania wielu plików dla jednej tabeli każdy plik powinien mieć te same wartości wiersza nagłówka.
* Znaki specjalne, takie jak kropki (`.`) mają specjalne znaczenie w wyrażeniach regularnych. Aby je dokładnie dopasować, należy zastosować symbole zastępcze. Na przykład: `.\`
* Qlik używa Pythona do wyrażeń regularnych, które mogą różnić się składnią od innych odmian. Spróbuj użyć [PyRegex](http://www.pyregex.com/) do przetestowania wyrażeń przed zapisaniem integracji.
* Wzorce wyszukiwania Parquet (`.parquet`) i Arvo (`.arvo`) są również obsługiwane.
* Wzorce wyszukiwania powinny uwzględniać sposób aktualizacji danych w plikach. Rozważmy następujące przykłady:

| **Scenariusz** | Pojedynczy plik, okresowo aktualizowany | Wiele plików generowanych codziennie |
| --- | --- | --- |
| **Jak dokonywane są aktualizacje** | Pojedynczy plik JSONL jest okresowo aktualizowany o nowe i zaktualizowane dane klientów. | Codziennie tworzony jest nowy plik CSV zawierający nowe i zaktualizowane dane kontenera. Stare pliki nigdy nie są aktualizowane po utworzeniu. |
| **Nazwa pliku** | `customers.jsonl` | `customers-[STRING].csv`gdzie `[STRING]` jest unikalnym, losowym ciągiem znaków |
| **Wzorzec wyszukiwania** | Ponieważ zawsze będzie tylko jeden plik, można wprowadzić dokładną nazwę pliku w zasobniku S3:<br><br>```<br>customers\.jsonl<br>```<br><br>`customers\.jsonl`customers\.\.jsonl | Aby zapewnić identyfikację nowych i zaktualizowanych plików, należy wprowadzić wzorzec wyszukiwania, który będzie pasował do wszystkich plików zaczynających się od `customers`, niezależnie od ciągu znaków w nazwie pliku:<br><br>```<br>(customers-).*\.csv<br>```<br><br>`(customers-).*\.csv`((customers-)).\*\*\.\.csv |
| **Pasuje do** | `customer.jsonl`, dokładnie | <ul> <li><code>customers-reQDSwNG6U.csv</code> </li> <li><code>customers-xaPTXfN4tD.csv</code> </li> <li><code>customers-MBJMhCbNCp.csv</code> </li> <li>itp.</li> </ul> |

### Wymagania dotyczące plików

| Nagłówek pierwszego wiersza (tylko pliki CSV) | <ul> <li>Każdy plik musi mieć nagłówek pierwszego wiersza zawierający nazwy kontenerów. Pierwszy wiersz w dowolnym pliku jest uważany za wiersz nagłówka i będzie prezentował te wartości jako kolumny dostępne do wyboru.                        </li> <li>Pliki z tymi samymi wartościami nagłówków w pierwszym wierszu, w przypadku uwzględniania wielu plików w tabeli. Integracja <span>Amazon S3</span> umożliwia mapowanie kilku plików do jednej tabeli docelowej. Wartości wiersza nagłówka są używane do określania schematu tabeli. Aby uzyskać najlepsze wyniki, każdy plik powinien mieć te same wartości wierszy nagłówka.                            <p>Różni się to od konfigurowania wielu tabel. Przykłady można znaleźć w sekcji <a href="https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/Connecting-Amazon-S3.htm#Defining">Definiowanie wzorca wyszukiwania</a>.</p></li> </ul> |
| --- | --- |
| Typy plików | <ul> <li>CSV (<code>.csv</code>)</li> <li>Tekst (<code>.txt</code>)</li> <li>JSONL (<code>.jsonl</code>)</li> <li>Parquet (<code>.parquet</code>)</li> <li>Arvo (<code>.arvo</code>)						<p>Pliki Arvo muszą zawierać schemat, aby były obsługiwane.</p></li> </ul> |
| Rodzaje kompresji | Pliki te muszą być poprawnie skompresowane, w przeciwnym razie podczas ich wyodrębniania pojawią się błędy.<br><br><ul> <li>skompresowane pliki gzip (<code>.gz</code>)</li> </ul> |
| Znaki rozdzielające (tylko pliki CSV) | <ul> <li>Przecinek (<code>,</code>)</li> <li>Tabulator (<code>/t</code>)</li> <li>Potok (<code>\|</code>)</li> <li>Średnik (<code>;</code>)</li> </ul> |
| Kodowanie znaków | UTF-8 (tylko `.csv`, `.txt` i `.jsonl`)<br><br>InformacjaPliki `.parquet` i `.arvo` są nieprzetworzonymi plikami binarnymi. |

## Tworzenie połączenia

Więcej informacji zawiera temat [Łączenie się z aplikacjami SaaS](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Landing/connecting-web-applications.htm).

1. Wprowadź wymagane właściwości połączenia.

2. Podaj nazwę połączenia w polu Nazwa połączenia.

3. Wybierz opcję Otwórz metadane połączenia, aby zdefiniować metadane połączenia po jegu utworzeniu.

4. Kliknij polecenie Utwórz.

Ustawienia połączenia

| Ustawienie | Opis |
| --- | --- |
| Brama danych | Wybierz bramę Brama danych ruchu danych, jeżeli jest wymagana do danego zastosowania.<br><br>Informacja<br><br>To pole jest niedostępne w subskrypcji Qlik Talend Cloud Starter, ponieważ brama Brama danych ruchu danych jest w niej nieobsługiwana. Jeśli masz inny poziom subskrypcji i nie chcesz korzystać z bramy Brama danych ruchu danych, wybierz opcję Brak.<br><br>Informacje o zaletach bramy Brama danych ruchu danych i o okolicznościach, w których jest wymagana, zawiera temat [Brama danych Qlik — ruch danych](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm). |
| Data rozpoczęcia | Wprowadź datę, w formacie `MM/DD/YYYY`, od której dane muszą być replikowane ze źródła do celu. |
| Zasobnik S3 | Nazwa zasobnika S3. |
| Identyfikator konta AWS | Identyfikator konta AWS, na którym istnieje zasobnik.<br><br>Identyfikator konta AWS można znaleźć w Konsoli zarządzania AWS w sekcji Szczegóły konta. |
| Wzorzec wyszukiwania | Wprowadź pliki do uwzględnienia w tabeli. Można wprowadzić pojedynczą nazwę pliku lub wyrażenie regularne.<br><br>Przykład: `users\*.csv``products\*.jsonl`. |
| Directory | Ograniczenie wyszukiwania w tej ścieżce katalogu. Po zdefiniowaniu tylko pliki w tej lokalizacji będą przeszukiwane i zostaną wybrane te, które pasują do wzorca wyszukiwania. Nie można użyć wyrażenia regularnego.<br><br>Przykład: csv-exports-folder lub employee\_jsonl\_exports. |
| Konfiguracja tabeli<br><br>Skonfiguruj tabelę, określając pliki, które chcesz dołączyć.<br><br>Można skonfigurować wiele tabel. |  |
| Nazwa tabeli | Nazwa tabeli.<br><br>Każdy cel ma swoje własne zasady dotyczące nazewnictwa tabel. Przykładowo, nazwy tabel Amazon Redshift nie mogą przekraczać 127 znaków. |
| Klucz główny | Wprowadź klucz główny, aby zidentyfikować unikalne wiersze lub rekordy. Jeśli wprowadzasz więcej niż jeden klucz, użyj przecinka, aby oddzielić wartości.<br><br><ul><li>W przypadku plików CSV wprowadź pola nagłówka lub nazwy kolumn.</li><li>W przypadku plików JSONL wprowadź nazwy atrybutów lub klucze obiektów.</li></ul><br><br>Przykład: identyfikator, nazwa. |
| Określanie pól daty i godziny | Wprowadź wartości, które muszą pojawić się w tabeli jako data i godzina zamiast łańcuch.<br><br>Przykład: created\_at, modified\_at. |
| ogranicznik | Z listy rozwijanej wybierz ogranicznik. |