集計テーブル機能の有効化方法
注意
集計テーブル機能(v5.6.0以降)は、Flink の MongoDB CDC コネクタに依存しています。以下の前提条件をすべて満たした上で、本機能をご利用ください。
-
Flinkサービスをデプロイしてください。
詳細手順:Flinkのデプロイ方法 -
MongoDB をバージョン4.4以上へアップグレードしてください。
参考:スタンドアロン環境MongoDB 4.4へのアップグレード
クラスタ環境MongoDB 4.4へのアップグレード- スタンドアロン環境で組み込みMongoDBを利用しており、かつ
mingdaoyun-scコンテナバージョンが3.0.0以上の場合、この要件はすでに満たされています。
- スタンドアロン環境で組み込みMongoDBを利用しており、かつ
-
MongoDB をレプリカセットモードで構成してください(すでにレプリカセットの場合はこの作業を省略できます)。
詳細:単一ノードMongoDBをレプリカセットに変換する方法- スタンドアロン環境の組み込みMongoDBは初期状態ではレプリカセットではありません。
- 認証なし組み込みMongoDBの場合
- 認証あり組み込みMongoDBの場合
- 認証なし外部MongoDBの場合
- 認証あり外部MongoDBの場合
組み込みMongoDBは、
mingdaoyun-sc:3.2.0イメージ内 に含まれるMongoDBコンポーネントを指します。
前提条件を満たせば、追加設定を行わずに集計テーブル機能を利用できます。👏👏👏
組み込みMongoDBは、
mingdaoyun-sc:3.2.0イメージ内に含まれるMongoDBコンポーネントを指します。
- rootアカウントでadminデータベースに接続し、集計テーブル用のロールとユーザーを作成します:
use admin;
db.createRole({
role: "aggrole",
privileges: [
{
resource: { db: "", collection: "" },
actions: [
"splitVector",
"listDatabases",
"listCollections",
"collStats",
"find",
"changeStream"
]
}
],
roles: [{ role: 'read', db: 'config' }]
});
db.createUser({
user: 'agguser',
pwd: 'ReplaceThisWithThePasswordOfAggUser',
roles: [
{ role: 'aggrole', db: 'admin' },
{ role: 'readWrite', db: 'mdaggregationwsrows' }
]
});
- 設定ファイルに環境変数
ENV_MONGODB_URI_AGGREGATIONWSROWSを追加し(他のオプション設定がある場合は適切に連結してください)、サービスを再起動します。例:スタンドアロン環境のyaml設定
services:
app:
image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-hap:7.5.3
environment: &app-environment
ENV_MONGODB_URI_AGGREGATIONWSROWS: "mongodb://agguser:******@sc:27017/mdaggregationwsrows?authSource=admin"
設定ファイルに環境変数 ENV_MONGODB_URI_AGGREGATIONWSROWS を追加し、サービスを再起動してください。例:スタンドアロン環境のyaml設定
services:
app:
image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-hap:7.5.3
environment: &app-environment
ENV_MONGODB_URI_AGGREGATIONWSROWS: "mongodb://ServiceNameOrIP:27017/mdaggregationwsrows"
# 複数ノードの場合
# ENV_MONGODB_URI_AGGREGATIONWSROWS: "mongodb://ServiceNameOrIP1:27017,ServiceNameOrIP2:27017,ServiceNameOrIP3:27017/mdaggregationwsrows"
- rootアカウントでadminデータベースに接続し、集計テーブル用のロールとユーザーを作成します:
use admin;
db.createRole({
role: "aggrole",
privileges: [
{
resource: { db: "", collection: "" },
actions: [
"splitVector",
"listDatabases",
"listCollections",
"collStats",
"find",
"changeStream"
]
}
],
roles: [{ role: 'read', db: 'config' }]
});
db.createUser({
user: 'agguser',
pwd: 'ReplaceThisWithThePasswordOfAggUser',
roles: [
{ role: 'aggrole', db: 'admin' },
{ role: 'readWrite', db: 'mdaggregationwsrows' }
]
});
- 設定ファイルに環境変数
ENV_MONGODB_URI_AGGREGATIONWSROWSを追加し(他のオプション設定がある場合は適切に連結してください)、サービスを再起動します。例:スタンドアロン環境のyaml設定
services:
app:
image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-hap:7.5.3
environment: &app-environment
ENV_MONGODB_URI_AGGREGATIONWSROWS: "mongodb://agguser:******@ServiceNameOrIP:27017/mdaggregationwsrows?authSource=admin"
# 複数ノードの場合
# ENV_MONGODB_URI_AGGREGATIONWSROWS: "mongodb://agguser:******@ServiceNameOrIP1:27017,ServiceNameOrIP2:27017,ServiceNameOrIP3:27017/mdaggregationwsrows?authSource=admin"