我可以網路爬取哪個資料存放區? - AWS Glue

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

我可以網路爬取哪個資料存放區?

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

爬蟲程式使用的存取類型 資料存放區
原生用戶端
  • Amazon Simple Storage Service (Amazon S3)

  • Amazon DynamoDB

  • Delta Lake 2.0.x

  • 阿帕奇冰山 1.5

  • Apache Hudi 0.14

JDBC

Amazon Redshift

Snowflake

在 Amazon Relational Database Service (Amazon RDS) 中或 Amazon RDS 外部:

  • Amazon Aurora

  • MariaDB

  • Microsoft SQL Server

  • MySQL

  • Oracle

  • PostgreSQL

MongoDB 用戶端
  • MongoDB

  • MongoDB Atlas

  • Amazon DocumentDB (with MongoDB compatibility)

注意

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

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

下列是爬行者程式支援的驅動程式版本:

產品 爬蟲支持的驅動程序
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 資料表

  • 建立符號連結資料夾:根據特定組態參數,使用由分割區索引鍵分割的資訊清單檔案建立 _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 資料表,查詢會看到遞交的最新資料。

對於「寫入時複製」資料表,爬行者程式會在「資料目錄」中建立含有 Serde 的單一資料表。 ReadOptimized 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。