

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 資料來源和輸出支援的連線
<a name="supported-data-connection-sources"></a>

您可以連線至 DataBrew 配方任務的下列資料來源。其中包括不是您直接上傳至 DataBrew 之檔案的任何資料來源。您使用的資料來源可能稱為資料庫、資料倉儲或其他項目。我們將所有資料提供者稱為資料來源或連線。

您可以使用下列任何一項做為資料來源來建立資料集。

您也可以使用透過 Amazon RDS 支援的 Amazon S3 AWS Glue Data Catalog或 JDBC 資料庫來輸出 DataBrew 配方任務。Amazon AppFlow 和AWS Data Exchange不支援 DataBrew 配方任務輸出的資料存放區。
+ **Amazon S3**

  您可以使用 S3 來存放和保護任意數量的資料。若要建立資料集，您可以指定 S3 URL，讓 DataBrew 可以存取資料檔案，例如： `s3://your-bucket-name/inventory-data.csv`

  DataBrew 也可以讀取 S3 資料夾中的所有檔案，這表示您可以建立跨越多個檔案的資料集。若要這樣做，請以此格式指定 S3 URL：`s3://your-bucket-name/your-folder-name/`。

   DataBrew 僅支援下列 Amazon S3 儲存類別：標準、降低備援、標準 – IA 和 S3 單區域 – IA。DataBrew 會忽略其他儲存類別的檔案。DataBrew 也會忽略空白檔案 （包含 0 個位元組的檔案）。如需 Amazon S3 儲存類別的詳細資訊，請參閱《[Amazon S3 主控台使用者指南》中的使用 Amazon S3 儲存類別](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html)。 *Amazon S3 * 
+ **AWS Glue Data Catalog**

  您可以使用 Data Catalog 來定義對儲存在AWS雲端中資料的參考。使用 Data Catalog，您可以在下列服務中建立個別資料表的連線：
  + Data Catalog Amazon S3
  + Data Catalog Amazon Redshift
  + Data Catalog Amazon RDS
  + AWS Glue

  DataBrew 也可以讀取 Amazon S3 資料夾中的所有檔案，這表示您可以建立跨越多個檔案的資料集。若要這樣做，請以此格式指定 Amazon S3 URL： `s3://your-bucket-name/your-folder-name/`

  若要與 DataBrew 搭配使用， 中定義的 Amazon S3 資料表AWS Glue Data Catalog必須新增名為 的資料表屬性，`classification`該屬性會將資料格式識別為 `csv`、 `json`或 `parquet`，並將 `typeOfData`識別為 `file`。如果在建立資料表時未新增資料表屬性，您可以使用AWS Glue主控台新增資料表屬性。

   DataBrew 僅支援 Amazon S3 儲存類別標準、降低備援、標準 – IA 和 S3 單區域 – IA。DataBrew 會忽略其他儲存類別的檔案。DataBrew 也會忽略空白檔案 （包含 0 個位元組的檔案）。如需 Amazon S3 儲存類別的詳細資訊，請參閱《[Amazon S3 主控台使用者指南》中的使用 Amazon S3 儲存類別](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html)。 *Amazon S3 * 

  如果建立適當的資源政策，DataBrew 也可以從其他帳戶存取AWS Glue Data Catalog S3 資料表。您可以在主控台的AWS Glue**Data Catalog** 下的**設定**索引標籤上建立政策。以下是專門針對單一 的範例政策AWS 區域。
**警告**  
這是高度寬鬆的資源政策，授予 的資料目錄`*$ACCOUNT_TO*`不受限制的存取權`*$ACCOUNT_FROM*`。在大多數情況下，我們建議您將資源政策鎖定在特定目錄或資料表。如需詳細資訊，請參閱《 *AWS Glue開發人員指南*》中的[AWS Glue存取控制的資源政策](https://docs.aws.amazon.com/glue/latest/dg/glue-resource-policies.html)。

  在某些情況下，您可能想要在AWS Glue DataBrew中使用 `*$ACCOUNT_TO*`AWS Glue Data Catalog S3 資料表在 中建立專案或執行任務`*$ACCOUNT_FROM*`，該資料表指向也在 中的 S3 位置`*$ACCOUNT_FROM*`。在這種情況下，在 中建立專案和任務時使用的 IAM 角色`*$ACCOUNT_TO*`必須具有從 列出和取得該 S3 位置中物件的許可`*$ACCOUNT_FROM*`。如需詳細資訊，請參閱《 *AWS Glue開發人員指南*》中的[授予跨帳戶存取權](https://docs.aws.amazon.com/glue/latest/dg/cross-account-access.html)。
+ **使用 JDBC 驅動程式連線的資料**

  您可以使用支援的 JDBC 驅動程式連線至資料，以建立資料集。如需詳細資訊，請參閱[搭配 使用驅動程式AWS Glue DataBrew](dbms-driver-connections.md)。

  DataBrew 使用 Java Database Connectivity (JDBC) 正式支援下列資料來源：
  + Microsoft SQL Server
  + MySQL
  + Oracle
  + PostgreSQL
  + Amazon Redshift
  + 適用於 Spark 的 Snowflake 連接器

  資料來源可以位於您可以從 DataBrew 與其連線的任何位置。此清單僅包含我們已測試且因此可支援的 JDBC 連線。

  Amazon Redshift 和 Snowflake Connector for Spark 資料來源可以透過下列其中一種方式連接：
  + 使用資料表名稱。
  + 使用跨越多個資料表和操作的 SQL 查詢。

  當您啟動專案或任務執行時，會執行 SQL 查詢。

  若要連線到需要未列出 JDBC 驅動程式的資料，請確定驅動程式與 JDK 8 相容。若要使用驅動程式，請將它存放在 S3 中的儲存貯體中，您可以在其中使用 DataBrew 的 IAM 角色存取它。然後將資料集指向驅動程式檔案。如需詳細資訊，請參閱[搭配 使用驅動程式AWS Glue DataBrew](dbms-driver-connections.md)。

  SQL 型資料集的範例查詢：

  ```
  SELECT
      * 
  FROM
      public.customer as c 
  JOIN
      public.customer_address as ca on c.current_address=ca.current_address
  WHERE
      ca.address_id>0 AND ca.address_id<10001 ORDER BY ca.address_id
  ```

  **自訂 SQL 的限制**

  如果您使用 JDBC 連線來存取 DataBrew 資料集的資料，請記住下列事項：
  + AWS Glue DataBrew不會驗證您在建立資料集時提供的自訂 SQL。當您啟動專案或任務執行時，將會執行 SQL 查詢。DataBrew 會接受您提供的查詢，並使用預設或提供的 JDBC 驅動程式將其傳遞至資料庫引擎。
  + 在專案或任務中使用無效查詢時，建立的資料集將會失敗。在建立資料集之前驗證您的查詢。
  + **驗證 SQL** 功能僅適用於以 Amazon Redshift 為基礎的資料來源。
  + 如果您想要在專案中使用資料集，請將 SQL 查詢執行時間限制在三分鐘以下，以避免在專案載入期間逾時。建立專案之前，請檢查查詢執行時間。
+ **Amazon AppFlow**

  使用 Amazon AppFlow，您可以從第三方Software-as-a-Service (SaaS) 應用程式將資料傳輸到 Amazon S3，例如 Salesforce、Zendesk、Slack 和 ServiceNow。然後，您可以使用資料來建立 DataBrew 資料集。

  在 Amazon AppFlow 中，您可以建立連線和流程，以在第三方應用程式和目的地應用程式之間傳輸資料。搭配使用 Amazon AppFlow 與 DataBrew 時，請確定 Amazon AppFlow 目的地應用程式是 Amazon S3。Amazon S3 以外的 Amazon AppFlow 目的地應用程式不會出現在 DataBrew 主控台中。如需從第三方應用程式傳輸資料和建立 Amazon AppFlow 連線和流程的詳細資訊，請參閱 [Amazon AppFlow 文件](https://docs.aws.amazon.com/appflow/index.html)。

  當您在 DataBrew **的資料集**索引標籤中選擇**連接新**資料集，然後按一下 Amazon AppFlow 時，您會看到 Amazon AppFlow 中設定 Amazon S3 作為目的地應用程式的所有流程。若要將流程的資料用於資料集，請選擇該流程。

   在 DataBrew 主控台中選擇**建立流程**、**管理流程**和**檢視 Amazon AppFlow 的詳細資訊**，會開啟 Amazon AppFlow 主控台，讓您可以執行這些任務。 AppFlow 

  從 Amazon AppFlow 建立資料集之後，您可以執行流程，並在檢視資料集詳細資訊或任務詳細資訊時檢視最新的流程執行詳細資訊。當您在 DataBrew 中執行流程時，資料集會在 S3 中更新，並準備好在 DataBrew 中使用。

  當您在 DataBrew 主控台中選取 Amazon AppFlow 流程來建立資料集時，可能會發生下列情況：
  + **資料尚未彙總** - 如果流程觸發條件是**隨需執行**或**按排程執行**並搭配完整資料傳輸，請務必先彙總流程的資料，再使用它來建立 DataBrew 資料集。彙總流程會將流程中的所有記錄合併為單一檔案。具有觸發類型的流程 使用增量資料傳輸**按排程執行**，或在**事件上執行**不需要彙總。若要彙總 Amazon AppFlow 中的資料，請選擇**編輯流程組態** > **目的地詳細資訊** > **其他設定** > **資料傳輸偏好設定**。
  + **流程尚未執行** - 如果流程的執行狀態為空，則表示下列其中一項：
    + 如果執行流程的觸發是**隨需執行**，表示流程尚未執行。
    + 如果執行流程的觸發是在**事件上執行**，則觸發事件尚未發生。
    + 如果執行流程的觸發條件是**按排程執行**，則尚未發生排定的執行。

    使用流程建立資料集之前，請選擇該**流程的執行**流程。

    如需詳細資訊，請參閱[《Amazon AppFlow 使用者指南》中的 Amazon AppFlow 流程](https://docs.aws.amazon.com/appflow/latest/userguide/flows.html)。 AppFlow 
+ **AWS Data Exchange**

  您可以從數百個可用的第三方資料來源中進行選擇AWS Data Exchange。透過訂閱這些資料來源，您可以取得最新版本up-to-date的資料。

  若要建立資料集，您可以指定您訂閱並有權使用AWS Data Exchange的資料產品名稱。