

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

# 連線至 Mixpanel
<a name="connecting-to-mixpanel"></a>

Mixpanel 是一種功能強大的即時分析平台，可協助公司衡量和最佳化使用者參與度。Mixpanel 是用於追蹤客戶行為的應用程式。可讓您追蹤使用者如何與您的產品互動，並使用互動式報告分析此資料，只需按幾下滑鼠即可查詢和視覺化結果。身為 Mixpanel 使用者，您可以 AWS Glue 連線至您的 Mixpanel 帳戶。然後，您可以在 ETL 任務中使用 Mixpanel 作為資料來源。執行這些任務以在 Mixpanel AWS 和服務或其他支援的應用程式之間傳輸資料。

**Topics**
+ [AWS Glue 支援 Mixpanel](Mixpanel-support.md)
+ [包含用於建立和使用連線的 API 操作的政策](mixpanel-configuring-iam-permissions.md)
+ [設定 Mixpanel](mixpanel-configuring.md)
+ [設定 Mixpanel 連線](mixpanel-configuring-connections.md)
+ [從 Mixpanel 實體中讀取](mixpanel-reading-from-entities.md)
+ [Mixpanel 連線選項](mixpanel-connection-options.md)
+ [建立 Mixpanel 帳戶並設定用戶端應用程式](mixpanel-create-account.md)
+ [限制](mixpanel-connector-limitations.md)

# AWS Glue 支援 Mixpanel
<a name="Mixpanel-support"></a>

AWS Glue 支援 Mixpanel，如下所示：

**支援作為來源？**  
是。您可以使用 AWS Glue ETL 任務從 Mixpanel 查詢資料。

**支援作為目標？**  
否。

**支援的 Mixpanel API 版本**  
 2.0 

# 包含用於建立和使用連線的 API 操作的政策
<a name="mixpanel-configuring-iam-permissions"></a>

 下列範例政策說明建立和使用 連線所需的 AWS 許可。如果您要建立新角色，請建立包含下列項目的政策：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

如果不想使用上述方法，可選擇使用下列受管 IAM 政策：
+  [ AWSGlueServiceRole ](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole) – 准許存取各種 AWS Glue 程序代表您執行所需的資源。這些資源包括 AWS Glue Amazon S3、IAM、CloudWatch Logs 和 Amazon EC2。如果您遵循此政策中指定資源的命名慣例，則 AWS Glue 程序具有必要的許可。此政策通常會連接至定義編目程式、工作和開發端點時所指定的角色。
+  [ AWSGlueConsoleFullAccess ](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess) – 當政策連接到的身分使用 AWS 管理主控台時，授予 AWS Glue 資源的完整存取權。如果您依照此政策中指定的資源命名慣例，使用者就能擁有完整的主控台功能。此政策通常連接到 AWS Glue 主控台的使用者。

# 設定 Mixpanel
<a name="mixpanel-configuring"></a>

您必須先符合下列要求，才能使用 從 Mixpanel AWS Glue 傳輸：

## 最低需求
<a name="mixpanel-configuring-min-requirements"></a>
+  您擁有一個 Mixpanel 帳戶。如需有關建立帳戶的詳細資訊，請參閱[建立 Mixpanel 帳戶](mixpanel-create-account.md)。
+  您的 Mixpanel 帳戶已啟用 API 存取。企業版、無限制版、開發人員版和高效版預設會啟用 API 存取。

如果您符合這些要求，就可以 AWS Glue 連線到您的 Mixpanel 帳戶。對於一般連線，不需要在 Mixpanel 中執行任何其他操作。

# 設定 Mixpanel 連線
<a name="mixpanel-configuring-connections"></a>

Mixpanel 支援 `BasicAuth` 的使用者名稱和密碼。基本身分驗證是一種簡單的身分驗證方法，其中用戶端會直接提供登入資料以存取受保護的資源。 AWS Glue 能夠使用使用者名稱和密碼來驗證 Mixpanel APIs。

如需有關 `BasicAuth` 流程的公有 Mixpanel 文件，請參閱 [Mixpanel 服務帳戶](https://developer.mixpanel.com/reference/service-accounts)。

若要設定 Mixpanel 連線：

1. 在 AWS Secrets Manager 中，建立包含下列詳細資訊的秘密：
   +  對於基本身分驗證，機密應包含以 `USERNAME` 和 `PASSWORD` 作為金鑰的連線應用程式消費者機密。
**注意**  
必須在 AWS Glue中為每個連線建立機密。

1. 在 中 AWS Glue Studio，依照下列步驟在 **Data Connections 下建立連線**：

   1. 選取**連線類型**時，請選取 **Mixpanel**。

   1. 提供您要連線的 Mixpanel 的 `INSTANCE_URL`。

   1. 選取 AWS Glue 可以擔任並具有下列動作許可的 IAM 角色：

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1.  選取您要用於此連線`secretName`的 AWS Glue ，以放置字符。

   1.  如果想要使用您的網路，請選取**網路選項**。

1.  授予與您的 AWS Glue 任務相關聯的 IAM 角色讀取 的許可`secretName`。

# 從 Mixpanel 實體中讀取
<a name="mixpanel-reading-from-entities"></a>

 **先決條件** 

您必須擁有一個要從中讀取資料的 Mixpanel 物件，例如 `Funnels`、`Retention`、或 `Retention Funnels`。此外，您將需要知道物件名稱。

 **支援的實體** 


| 實體 | 可以篩選 | 支援限制 | 支援排序依據 | 支援選取 \$1 | 支援分區 | 
| --- | --- | --- | --- | --- | --- | 
| 漏斗圖 | 是 | 否 | 否 | 是 | 否 | 
| Retention | 是 | 否 | 否 | 是 | 否 | 
| 區隔 | 是 | 否 | 否 | 是 | 否 | 
| 分段總和 | 是 | 否 | 否 | 是 | 否 | 
| 分段平均值 | 是 | 否 | 否 | 是 | 否 | 
| 群體 | 是 | 否 | 否 | 是 | 否 | 
| 聯絡 | 否 | 是 | 否 | 是 | 否 | 
| 事件 | 是 | 否 | 否 | 是 | 否 | 
| 事件頂端 | 是 | 否 | 否 | 是 | 否 | 
| 事件名稱 | 是 | 否 | 否 | 是 | 否 | 
| 事件屬性 | 是 | 否 | 否 | 是 | 否 | 
| 事件屬性頂端 | 是 | 否 | 否 | 是 | 否 | 
| 事件屬性值 | 是 | 否 | 否 | 是 | 否 | 
| 註釋 | 是 | 否 | 否 | 是 | 否 | 
| 設定檔事件活動 | 是 | 否 | 否 | 是 | 否 | 

 **範例** 

```
mixpanel_read = glueContext.create_dynamic_frame.from_options(
    connection_type="mixpanel",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "/cohorts/list?project_id=2603353",
        "API_VERSION": "2.0",
        "INSTANCE_URL": "https://www.mixpanel.com/api/app/me"
    }
```

 **Mixpanel 實體和欄位詳細資訊** 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/glue/latest/dg/mixpanel-reading-from-entities.html)

# Mixpanel 連線選項
<a name="mixpanel-connection-options"></a>

以下是 Mixpanel 的連線選項：
+  `ENTITY_NAME`(String) - (必要) 用於讀取/寫入。Mixpanel 中的物件名稱。
+  `API_VERSION`(String) - (必要) 用於讀取/寫入。您想要使用的 Mixpanel Rest API 版本。例如，V2.0。
+  `SELECTED_FIELDS`(List<String>) - 預設：empty(SELECT \$1)。用於讀取。您要為物件選取的資料欄。
+  `FILTER_PREDICATE`(String) - 預設：空白。用於讀取。其應該為 Spark SQL 格式。
+  `QUERY`(String) - 預設：空白。用於讀取。完整的 Spark SQL 查詢。

# 建立 Mixpanel 帳戶並設定用戶端應用程式
<a name="mixpanel-create-account"></a>

**建立 Mixpanel 帳戶**

1. 導覽至 [Mixpanel 首頁/](https://mixpanel.com/)。

1. 在 **Mixpanel** 首頁中，選擇頁面右上角的**註冊**。

1. 在**開始使用**頁面中，完成下列動作：
   + 在指定欄位中輸入電子郵件地址。
   + 選取必要的核取方塊以同意條款。
   + 選擇**開始使用**以繼續。

     成功完成後，會收到驗證電子郵件。

1. 檢查電子郵件收件匣是否有驗證訊息，開啟電子郵件，並依照指示來驗證您的電子郵件地址。

1. 在驗證頁面中，選擇**驗證電子郵件**以完成電子郵件驗證。

1. 在**命名您的組織**頁面中，輸入組織名稱，然後選擇**下一步**。

1. 在**您的第一個專案**頁面中，輸入專案詳細資訊，然後選擇**建立**。

1. 在下一頁中，選擇**讓我們開始**完成帳戶的建立。

**登入 Mixpanel 帳戶**

1. 導覽至 [Mixpanel 登入頁面/](https://mixpanel.com/login/)。

1. 輸入電子郵件地址，然後選擇**繼續**。

1. 檢查電子郵件收件匣是否有驗證訊息，開啟電子郵件，並依照指示來驗證您的電子郵件地址。

1. 在下一頁中，選擇**登入**按鈕以登入您的帳戶。

**購買 Mixpanel 計劃**

1. 在 Mixpanel 頁面中，選取位於頁面右上角的**設定**圖示。

1. 從選項清單中，選取**計劃詳細資訊和帳單**。

1. 在**計劃詳細資訊和帳單**頁面中，選取**升級或修改**。

1. 在下一頁中，選取您要購買的計劃。

   這會完成帳戶建立和計劃購買程序。

**建立使用者名稱和用戶端機密 (註冊您的應用程式)**

1. 在 Mixpanel 頁面中，選取位於頁面右上角的**設定**圖示。

1. 從選項清單中，選取**專案設定**。

1. 在**專案設定**頁面中，選取**服務帳戶**，然後選取**新增服務帳戶**。

1. 從**服務帳戶**下拉式清單中，選取**服務帳戶或輸入要建立的名稱**，新增**專案角色**，指定**過期日**，然後選取**新增**。
**重要**  
完成上一個步驟後，以下頁面會顯示服務帳戶的機密金鑰。請務必儲存服務帳戶的機密金鑰。在此時間點之後，您將無法再次存取其。

# 限制
<a name="mixpanel-connector-limitations"></a>

以下是 Mixpanel 連接器的限制：
+ 對於 `Segmentation Numeric` 實體，如果找不到強制篩選條件的數值資料，則 Mixpanel API 會擲回 `400 (Bad Request)` 錯誤。我們將此視為防止流程失敗的 `OK` 回應。
+ 可查詢欄位 `limit` 已從支援的實體中移除，因為：
  + 由於被解譯為 SDK 的限制功能而導致錯誤
  + 篩選條件沒有實際用途
  + 限制功能實作現在涵蓋同等功能
+ 由於缺少從 SaaS 平台進行分區所需的運算子 (`>=`、`<=`、`<`、`>`、`between`)，因此不支援欄位型分區。雖然其支援 `between` 運算子，但其支援此運算子的欄位無法擷取。因此，不滿足欄位型分區的條件。
+  由於沒有佈建來取得支援分頁的實體的 'offset' 值，因此無法支援 Mixpanel 的記錄型分區。
+ `Cohorts` 實體僅支援 `CreatedDate/Time` 欄位並且沒有欄位來識別 `UpdatedDate/Time`，因此無法識別 `DML_Status`。此外，沒有端點可以識別已刪除的記錄。因此，不支援 CDC。
+  若要為下列實體執行 AWS Glue 任務，需要強制篩選條件。如需實體名稱及其所需的篩選條件，請參閱下表。  
**實體名稱和所需的篩選條件**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/glue/latest/dg/mixpanel-connector-limitations.html)