

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

# 支援的網路爬取資料來源
<a name="crawler-data-stores"></a>

爬蟲程式可以抓取下列檔案型和資料表型資料存放區。


| 爬蟲程式使用的存取類型 | 資料存放區 | 
| --- | --- | 
| 原生用戶端 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/glue/latest/dg/crawler-data-stores.html)  | 
| JDBC |  Amazon Redshift Snowflake 在 Amazon Relational Database Service (Amazon RDS) 中或 Amazon RDS 外部： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/glue/latest/dg/crawler-data-stores.html)  | 
| MongoDB 用戶端 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/glue/latest/dg/crawler-data-stores.html)  | 

**注意**  
目前 AWS Glue 不支援資料串流的爬蟲程式。

對於 JDBC、MongoDB、MongoDB Atlas 和 Amazon DocumentDB (with MongoDB compatibility) 資料存放區，您必須指定爬蟲程式可用來連線到資料存放區的 AWS Glue *連線*爬蟲程式。對於 Amazon S3，您可以選擇性地指定網路類型的連線。連線是儲存連線資訊的 Data Catalog 物件，例如憑證、URL、Amazon Virtual Private Cloud 資訊等。如需詳細資訊，請參閱[連線至資料](glue-connections.md)。

以下是編目程式支援的驅動程式版本：


| 產品 | 編目程式支援的驅動程式 | 
| --- | --- | 
| PostgreSQL | 42.2.1 | 
| Amazon Aurora | 與原生編目程式驅動程式相同 | 
| MariaDB | 8.0.13 | 
| Microsoft SQL Server | 6.1.0 | 
| MySQL | 8.0.13 | 
| Oracle | 11.2.2 | 
| Amazon Redshift | 4.1 | 
| Snowflake | 3.13.20 | 
| MongoDB | 4.7.2 | 
| MongoDB Atlas | 4.7.2 | 

以下是有關各種資料存放區的注意事項。

**Amazon S3**  
您可以選擇在您的帳戶或在另一個帳戶網路爬取路徑。如果資料夾中的所有 Amazon S3 檔案都具有相同的結構描述，爬蟲程式就會建立一個資料表。此外，如果 Amazon S3 物件已分割，則只會建立一個中繼資料資料表，並將分割資訊新增到該資料表的 Data Catalog 。

**Amazon S3 和 Amazon DynamoDB**  
爬蟲程式使用 AWS Identity and Access Management (IAM) 角色來取得存取資料存放區的許可。*您傳遞至爬蟲程式的角色必須擁有許可，才能存取已抓取的 Amazon S3 路徑和 Amazon DynamoDB 資料表*。

**Amazon DynamoDB**  
使用 AWS Glue 主控台定義爬蟲程式時，需指定一個 DynamoDB 資料表。若您是使用 AWS Glue API，可指定資料表清單。您可以選擇只網路爬取一小部分的資料範例，以減少爬蟲程式的執行時間。

**Delta Lake**  
針對每個 Delta Lake 資料存放區，請指定如何建立 Delta 資料表：  
+ **建立原生資料表**：允許與支援直接查詢 Delta 交易日誌的查詢引擎整合。如需詳細資訊，請參閱[查詢 Delta Lake 資料表](https://docs.aws.amazon.com/athena/latest/ug/delta-lake-tables.html)。
+ **建立符號連結資料夾**：根據特定組態參數，使用由分割區索引鍵分割的資訊清單檔案建立 `_symlink_manifest` 資料夾。

**Iceberg**  
對於每個 Iceberg 資料存放區，您可以指定包含 Iceberg 資料表中繼資料的 Amazon S3 路徑。如果爬蟲程式發現 Iceberg 資料表中繼資料，其會在資料目錄中註冊該中繼資料。您可以為爬蟲程式設定排程，讓資料表持續更新。  
您可以為資料存放區定義下列參數：  
+ **排除**：可讓您略過某些資料夾。
+ **周遊深度上限**：設定爬蟲程式可在 Amazon S3 儲存貯體中爬取的深度限制。預設的周遊深度上限為 10，而您可以設定的深度上限為 20。

**Hudi**  
對於每個 Hudi 資料存放區，您可以指定包含 Hudi 資料表中繼資料的 Amazon S3 路徑。如果爬蟲程式發現 Hudi 資料表中繼資料，其會在資料目錄中註冊該中繼資料。您可以為爬蟲程式設定排程，讓資料表持續更新。  
您可以為資料存放區定義下列參數：  
+ **排除**：可讓您略過某些資料夾。
+ **周遊深度上限**：設定爬蟲程式可在 Amazon S3 儲存貯體中爬取的深度限制。預設的周遊深度上限為 10，而您可以設定的深度上限為 20。
由於與 Hudi 0.13.1 和時間戳記類型不相容，邏輯類型為 `millis` 的時間戳記資料欄將解譯為 `bigint`。即將發布的 Hudi 版本中可能會提供解決方案。
Hudi 資料表的分類如下，每個資料表都具有特定的含義：  
+ 寫入時複製 (CoW)：資料會以單欄式格式 (Parquet) 存放，每次更新都會在寫入期間建立新版檔案。
+ 讀取時合併 (MoR)：資料的存放是使用單欄式格式 (Parquet) 和以資料列為基礎的格式 (Avro) 組合進行。更新會記錄到以資料列為基礎的 delta 檔案，並視需要壓縮以建立新版本的直欄式檔案。
使用 CoW 資料集，每次有記錄進行更新時，包含記錄的檔案就會以更新的值重寫。若使用 MoR 資料集，每次有更新時，Hudi 只會寫入已變更之記錄的資料行。MoR 更適合較少讀取，而寫入或變更較繁重的工作負載。CoW 更適合資料變更較不頻繁，而讀取作業較為繁重的工作負載。  
Hudi 提供三個可用於資料存取的查詢類型：  
+ 快照查詢：查詢會查看截至指定遞交或壓縮動作之資料表的最新快照。對於 MoR 資料表，快照查詢會公開資料表的最新狀態，方法是合併查詢時最新檔案切片的基底和 delta 檔案。
+ 增量查詢：查詢只會看到自指定遞交/壓縮以來在資料表中寫入的新資料。這會有效地提供變更串流，以啟用增量資料管道。
+ 讀取最佳化查詢：對於 MoR 資料表，查詢會看到壓縮的最新資料。對於 CoW 資料表，查詢會看到遞交的最新資料。
對於寫入時複製資料表，爬蟲程式會使用 ReadOptimized serde `org.apache.hudi.hadoop.HoodieParquetInputFormat`，在資料目錄中建立單一資料表。  
對於「讀取時合併」資料表，爬蟲程式會在資料目錄中為相同的資料表位置建立兩個資料表：  
+ 尾碼為 `_ro` 的資料表，使用 ReadOptimized serde `org.apache.hudi.hadoop.HoodieParquetInputFormat`。
+ 尾碼為 `_rt` 的資料表，使用允許快照查詢的 RealTime Serde：`org.apache.hudi.hadoop.realtime.HoodieParquetRealtimeInputFormat`。

**MongoDB 和 Amazon DocumentDB (with MongoDB compatibility)**  
支援 MongoDB 3.2 版和更新版本。您可以選擇只網路爬取一小部分的資料範例，以減少爬蟲程式的執行時間。

**關聯式資料庫**  
身分驗證是使用資料庫使用者名稱和密碼。根據資料庫引擎的類型，您可以選擇要探索哪些物件 (例如資料庫、結構描述和資料表)。

**Snowflake**  
Snowflake JDBC 爬蟲程式支援網路爬取資料表、外部資料表、視觀表以及具體化視觀表。不會填入具體化視觀表定義。  
對於 Snowflake 外部資料表，爬蟲程式只有在指向 Amazon S3 位置時才會進行網路爬取。除了資料表結構描述，爬蟲程式還會網路爬取 Amazon S3 位置、檔案格式和作為 Data Catalog 資料表中資料表參數的輸出內容。請注意，不會填入已分割外部資料表的分割區資訊。  
使用 Snowflake 爬蟲程式建立的 Data Catalog 資料表目前不支援 ETL。