Alibaba CloudデータソースおよびAmazon RDSのData Lake Analytics共用利用とFunction Computeを利用したテーブル結合結果のOSSアウトプットおよびDataV連携について [ DLA + OTS + RDS + Function Compute + OSS + DataV ]

f:id:sbc_suzuki10:20200722144307p:plain

こんにちは。エンジニアの鈴木です。

前回はData Lake Analyticsを使用した異なるプロダクトのテーブルを結合して表示することをご紹介しました。

www.sbcloud.co.jp

今回は前回に引き続き、今回もData Lake Analytics (DLA)を使用し、プロダクト連携例をご紹介していきたいと思います。

前回との差異は以下です。
・Data Lake AnalyticsとApsaraDB for RDSの連携
・Data Lake AnalyticsとAmazon RDSの連携
・Function Computeを利用した複数プロダクトへのクエリ実行とObject Storage Service(OSS)へのクエリ結果アップロード
・Data Lake Analyticsで結合したクエリ結果のBIツール(DataV)連携

前回同様、環境準備としてまずは参照するテーブルを各プロダクトで用意していきます。




プロダクト連携図

各プロダクトの連携は以下のようになります。
各プロダクトを作成し、最終的にDataVに連携します。
f:id:sbc_suzuki10:20200710165233p:plain

Table Store

f:id:sbc_suzuki10:20200722144533p:plain

Table Storeインスタンスの作成

Data Lake Analyticsとの連携に使用するTable Storeインスタンスを作成します。

www.alibabacloud.com

参考画像
f:id:sbc_suzuki10:20200703174354p:plain


Table StoreのVPCバインド

Data Lake Analyticsとの連携を図るため、Table StoreインスタンスをVPCに紐づけます。

f:id:sbc_suzuki10:20200706193703p:plain


以下では上海リージョンのVPCおよびゾーンBのVSwitchを指定しています。

f:id:sbc_suzuki10:20200706193724p:plain


f:id:sbc_suzuki10:20200706193741p:plain


Table Storeにテーブルを作成

Data Lake Analyticsで参照するテーブルを前回同様作成します。

参考画像
f:id:sbc_suzuki10:20200706103933p:plain


Table Storeにレコードを作成

以下のテストデータをテーブルに挿入します。

timeStamp messageId deviceName rawMessage
2020-06-16 12:00:00 0000000000000000001 dev_001 dev_001@test@001
2020-06-16 12:01:00 0000000000000000002 dev_002 dev_002@test@001
2020-06-16 12:02:00 0000000000000000003 dev_003 dev_003@test@001


f:id:sbc_suzuki10:20200706104248p:plain



ApsaraDB for RDS

f:id:sbc_suzuki10:20200722144615p:plain

ApsaraDB for RDSインスタンスの作成

Data Lake Analyticsとの連携に使用するApsaraDB for RDSインスタンスを作成します。

www.alibabacloud.com


エンジンはMySQLを選択。
エンジンバージョンは2020年7月9日時点で最新の8.0.18(コンソールではエンジンバージョン8.0と表示)を使用します。

参考画像
f:id:sbc_suzuki10:20200706153243p:plain

データベースユーザの作成

Data Lake Analyticsで参照するデータベースおよびテーブルを作成する際に使用するデータベースユーザを作成します。

参考画像
f:id:sbc_suzuki10:20200706153509p:plain

Data Management Serviceへの接続

ApsaraDB for RDSコンソールより、DBログイン画面に遷移します。

参考画像
f:id:sbc_suzuki10:20200706153702p:plain


Data Management Serviceコンソールで
作成したApsaraDB for RDSインスタンスのエンドポイントを指定し、Data Management Serviceにログインします。
参考画像
f:id:sbc_suzuki10:20200706153752p:plain


データベース作成

クエリを実行し、Data Lake Analyticsで参照するデータベースをData Management Serviceで作成します。

create database aprds_blog2_test_db


テーブル作成

クエリを実行し、Data Lake Analyticsで参照するテーブルをData Management Serviceで作成します。

create table aprds_blog2_test_db.tbl_002 (
`timeStamp` varchar(255) not NULL,
`messageId` varchar(255) not NULL,
`deviceName` varchar(255) NULL,
`state` varchar(255) NULL,
`message` varchar(255) NULL,
PRIMARY KEY (`timeStamp`, `messageId`)
)


ApsaraDB for RDSにレコードを作成

Data Lake Analyticsで参照するデータをData Management Serviceで作成します。
以下のテストデータをテーブルにINSERTします。

timeStamp messageId deviceName state message
2020-06-16 12:00:00 0000000000000000001 dev_001 info システムが再起動しました。
2020-06-16 12:01:00 0000000000000000002 dev_002 warn xxxへの接続がタイムアウトしました。
2020-06-16 12:02:00 0000000000000000003 dev_003 error システムが異常終了しました。


f:id:sbc_suzuki10:20200706153145p:plain



Amazon RDS

f:id:sbc_suzuki10:20200722144649p:plain

Amazon RDSインスタンスの作成

Data Lake Analyticsとの連携に使用するAmazon RDSインスタンスを作成します。

docs.aws.amazon.com



エンジンはMySQLを選択。
エンジンバージョンは2020年7月9日時点で最新の8.0.19を使用します。

参考画像
f:id:sbc_suzuki10:20200702165113p:plain



データベースユーザとパスワードを設定します。
参考画像
f:id:sbc_suzuki10:20200709125543p:plain


Amazon RDSへの外部接続許可設定

パブリックアクセシビリティの有効化

Data Lake Analyticsからの外部接続を許可するため、
パブリックアクセシビリティを有効にします。

インスタンス詳細画面で変更を押下します。

参考画像
f:id:sbc_suzuki10:20200702170600p:plain


パブリックアクセシビリティ項目で「はい」を選択し、ページ下部の「次へ」を押下します。

f:id:sbc_suzuki10:20200709162501p:plain


変更の概要で「パブリックアクセス可能」の新しい値が「はい」になっていることを確認します。
すぐに設定を反映させるため、変更のスケジュールで「すぐに適用」を選択し、ページ下部の「DBインスタンスの変更」を押下します。

f:id:sbc_suzuki10:20200702171652p:plain


インスタンスへの変更適用後、インスタンス詳細画面でパブリックアクセシビリティが「あり」になっていることを確認します。

参考画像
f:id:sbc_suzuki10:20200702181110p:plain



Amazon RDSのSecurity Group外部インバウンド通信許可

Amazon RDSにアタッチされているSecurity Groupで以下の外部インバウンド通信を許可します。
・Amazon RDSへ接続するSQLクライアントからの外部インバウンド通信(MySQL Workbenchなど)
・Alibaba CloudのData Lake Analyticsからの外部インバウンド通信

Amazon RDSインスタンス詳細画面からアタッチされているSecurity Groupを押下し、Security Group詳細画面に遷移します。

参考画像
f:id:sbc_suzuki10:20200702182940p:plain



インバウンドルールに「SQLクライアント」と「Data Lake Analytics」のIPアドレスを追加します。
Data Lake Analyticsからの通信を許可するには、インバウンドルールに「101.132.0.0/16」もしくは「101.132.71.223/32」を追加します。
以下の参考画像では上記のうち、「101.132.71.223/32」を許可しています。
※上記のIPアドレス2020年7月9日時点のIPアドレスであるため、今後予告なしに変更される可能性があります。
※後の工程でAmazon RDSにデータベースとテーブルを作成するため、SQLクライアント接続元のIPアドレスも許可しています。

f:id:sbc_suzuki10:20200702192130p:plain


Amazon RDSにテーブルを作成

Data Lake Analyticsで参照するデータベースとテーブルをAmazon RDS上で作成します。
今回はMySQL Workbenchを使用し、Amazon RDSに接続します。

docs.aws.amazon.com

Amazon RDSへの接続

Hostnameにエンドポイントを入力し、
Amazon RDSインスタンス作成時に指定したUsernameとPasswordを入力し接続します。

参考画像
f:id:sbc_suzuki10:20200702192636p:plain


データベース作成

Data Lake Analyticsが参照するデータベースを作成します。
以下のクエリをAmazon RDSに接続したMySQL Workbench上で実行します。

create database rds_blog2_test_db


テーブル作成

Data Lake Analyticsが参照するテーブルを作成します。
以下のクエリをAmazon RDSに接続したMySQL Workbench上で実行します。

create table rds_blog2_test_db.tbl_003 (
`deviceName` varchar(255) not NULL,
`branch` varchar(255) NULL,
`user` varchar(255) NULL,
`address` varchar(255) NULL,
`update` varchar(255) NULL,
PRIMARY KEY (`deviceName`)
)


レコード作成

Data Lake Analyticsが参照するデータを作成します。
以下のテストデータをテーブルにINSERTします。

deviceName branch user address update
dev_001 toyosu 長谷川 hasegawa@test.com 2020-06-11 12:00:00
dev_002 toyosu 四月一日 watanuki@test.com 2020-06-11 12:00:00
dev_003 shibuya 高橋 takahashi@test.com 2020-06-12 12:00:00


f:id:sbc_suzuki10:20200706171426p:plain



Data Lake Analytics Part1

f:id:sbc_suzuki10:20200722144734p:plain

Data Lake Analyticsでのスキーマ作成 Part1

前回同様Data Lake Analyticsコンソールのアクセスポイント管理から
Data Lake Analyticsのエンドポイントを作成し、Log on in DMSを押下します。
※本ブログでは上海リージョンのゾーンBにエンドポイントを作成しています。

ログオン後、Data Management ServiceコンソールにRoot Accountでログインし、
スキーマをData Lake Analyticsに作成します。

Data Lake AnalyticsでのTable Storeスキーマ作成

以下のクエリをData Management Serviceで実行し、Table Storeスキーマを作成します。

CREATE SCHEMA dla_ots_test WITH DBPROPERTIES (
catalog = 'ots',
location = 'https://ts-blog2-test.cn-shanghai.vpc.tablestore.aliyuncs.com',
instance = 'ts-blog2-test'
);
f:id:sbc_suzuki10:20200706193911p:plain



Data Lake AnalyticsでのApsaraDB for RDSスキーマ作成

以下のクエリをData Management Serviceで実行し、ApsaraDB for RDSスキーマを作成します。

CREATE SCHEMA dla_aprds_test WITH DBPROPERTIES (
CATALOG = 'mysql', 
LOCATION = 'jdbc:mysql://rm-6nn1ooor9e5aghset.mysql.rds.aliyuncs.com:3306/aprds_blog2_test_db',
USER = 'test_admin',
PASSWORD = '<パスワード>',
INSTANCE_ID = 'rm-6nn1ooor9e5aghset',
VPC_ID = 'vpc-uf6m5gn7f0wm3e249tonb'
);
f:id:sbc_suzuki10:20200707110022p:plain



Data Lake AnalyticsでのAmazon RDSスキーマ作成

以下のクエリをData Management Serviceで実行し、Amazon RDSスキーマを作成します。

CREATE SCHEMA dla_rds_test WITH DBPROPERTIES (
catalog = 'mysql',
location = 'jdbc:mysql://rds-blog2-test.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com:3306/rds_blog2_test_db',
USER = 'admin',
PASSWORD = '<パスワード>'
);
f:id:sbc_suzuki10:20200707110007p:plain



Data Lake Analyticsのスキーマ確認

Data Lake Analyticsコンソールのスキーマ管理でスキーマが作成されていることを確認します。

f:id:sbc_suzuki10:20200709132913p:plain



Data Lake Analyticsでの外部テーブル作成 Part1

Data Lake Analyticsコンソールのアクセスポイント管理からData Management ServiceコンソールにRoot Accountでログインし、外部テーブルをData Lake Analyticsに作成します。

Data Lake AnalyticsでのTable Storeの外部テーブル作成

以下のクエリをData Management Serviceで実行し、Table Storeの外部テーブルを作成します。

CREATE EXTERNAL TABLE dla_ots_test.tbl_001 (
`timeStamp` varchar not NULL,
`messageId` varchar not NULL,
`deviceName` varchar NULL,
`rawMessage` varchar NULL,
PRIMARY KEY (`timeStamp`, `messageId`)
);
f:id:sbc_suzuki10:20200707155034p:plain



Data Lake AnalyticsでのApsaraDB for RDSの外部テーブル作成

以下のクエリをData Management Serviceで実行し、ApsaraDB for RDSの外部テーブルを作成します。

CREATE EXTERNAL TABLE dla_aprds_test (
`timeStamp` varchar(255) not NULL,
`messageId` varchar(255) not NULL,
`deviceName` varchar(255) NULL,
`state` varchar(255) NULL,
`message` varchar(255) NULL,
) tblproperties (
table_mapping = "tbl_002"
);
f:id:sbc_suzuki10:20200707155048p:plain



Data Lake AnalyticsでのAmazon RDSの外部テーブル作成

以下のクエリをData Management Serviceで実行し、Amazon RDSの外部テーブルを作成します。

CREATE EXTERNAL TABLE dla_rds_test.tbl_003 (
`deviceName` varchar(255) not NULL,
`branch` varchar(255) NULL,
`user` varchar(255) NULL,
`address` varchar(255) NULL,
`update` varchar(255) NULL
) tblproperties (
table_mapping = "tbl_003"
);
f:id:sbc_suzuki10:20200707155059p:plain



Object Storage Service

f:id:sbc_suzuki10:20200722144818p:plain

バケット作成

後の工程で作成するFunction Computeのファイルアップロード先をObject Storage Serviceで作成します。

参考画像
f:id:sbc_suzuki10:20200707184201p:plain


ディレクトリ作成

Function Computeのファイルアップロード先ディレクトリを作成します。

参考画像
f:id:sbc_suzuki10:20200707184215p:plain



Resource Access Management

f:id:sbc_suzuki10:20200722144847p:plain

RAMロールの作成

Function Computeで使用するRAMロールを作成します。

参考画像
f:id:sbc_suzuki10:20200708181100p:plain


RAMロールへの権限付与

以下の権限を付与します。
AliyunOSSFullAccess
AliyunECSNetworkInterfaceManagementAccess
AliyunDLAFullAccess

参考画像
f:id:sbc_suzuki10:20200708181114p:plain



Function Compute

f:id:sbc_suzuki10:20200722144919p:plain

サービスの作成

Function Computeのサービスを作成します。

参考画像
f:id:sbc_suzuki10:20200708181806p:plain


ネットワークの設定

サービス設定でネットワークの設定もします。
インターネットアクセスは不要のためオフとし、
Data Lake Analyticsのアクセスポイントと同じ、上海リージョンのゾーンBを指定します。
Security Groupでの制限は今回はなしとしました。

f:id:sbc_suzuki10:20200708181639p:plain


RAMロールのバインド

サービス設定でRAMロールを設定します。
Function Compute用に作成したRAMロールをバインドします。

f:id:sbc_suzuki10:20200708181936p:plain


関数の作成

実行する内容を記述する関数を作成します。
今回はテンプレート関数を使用したため、Python3をランタイムとして選択しました。

参考画像
f:id:sbc_suzuki10:20200708181503p:plain



Function Computeによるテーブル結合とObject Storage Serviceへの結果出力

Function ComputeでData Lake Analyticsにアクセスし、
Data Lake Analyticsと連携した以下データソースのテーブルデータを結合し、
Object Storage ServiceにCSVとして出力する処理を作成します。
・Table Store
・ApsaraDB for RDS
・Amazon RDS

テーブル結合イメージは以下になります。

f:id:sbc_suzuki10:20200702152522p:plain


以下の2つのテンプレート関数をベースにし、
Data Lake Analyticsで結合したテーブルのクエリ結果を
Object Storage Serviceに書き出す処理を記述します。
・data-lake-analytics
・oss-download-zip-upload

参考画像
f:id:sbc_suzuki10:20200708163707p:plain


f:id:sbc_suzuki10:20200708163921p:plain



ローカルでPyMySQLモジュールとindex.pyをzipに圧縮し、zipをFunction Computeにアップロードします。
参考画像
f:id:sbc_suzuki10:20200709110341p:plain

# -*- coding: utf-8 -*-
import pymysql
import os
import oss2
import shutil

def handler(event, context):
  db = pymysql.connect(
    # Data Lake Analytics
    host='xxxxxxxxxxxxxxxxxxxxxxxx.vpc.cn-shanghai.datalakeanalytics.aliyuncs.com',
    port=10000,
    user='<Data Lake Analyticsユーザ>',
    passwd='<パスワード>',
    database='',
    charset='utf8'
  )
  
  # Execute
  sql='SELECT rawMessage, state, message, branch, user, address \
  FROM dla_ots_test.tbl_001 \
  INNER JOIN dla_aprds_test.tbl_002 \
  ON dla_ots_test.tbl_001.messageId = dla_aprds_test.tbl_002.messageId \
  INNER JOIN dla_rds_test.tbl_003 \
  ON dla_ots_test.tbl_001.devicename = dla_rds_test.tbl_003.devicename'
  
  # Object Storage Service
  creds = context.credentials
  auth = oss2.StsAuth(creds.accessKeyId, creds.accessKeySecret, creds.securityToken)
  bucket = oss2.Bucket(auth, 'oss-cn-shanghai-internal.aliyuncs.com', 'oss-blog2-test')
  uid = 'dla_result'
  os.system("rm -rf /tmp/*")
  path = '/tmp/' + uid + '.csv'
  key = 'datav/' + uid + '.csv'

  cursor = db.cursor()

  # Query
  rquery = query_oss_text_table(cursor, sql)

  # Add
  write_csv(path, rquery)

  db.close()
  
  # Upload
  total_size = os.path.getsize(path)
  part_size = oss2.determine_part_size(total_size, preferred_size = 128 * 1024)
  upload_id = bucket.init_multipart_upload(key).upload_id
 
  with open(path, 'rb') as fileobj:
    parts = []
    part_number = 1
    offset = 0
    while offset < total_size:
      num_to_upload = min(part_size, total_size - offset)
      result = bucket.upload_part(key, upload_id, part_number,oss2.SizedFileAdapter(fileobj, num_to_upload))
      parts.append(oss2.models.PartInfo(part_number, result.etag))
      offset += num_to_upload
      part_number += 1
            
    bucket.complete_multipart_upload(key, upload_id, parts)
        
  return total_size

def query_oss_text_table(cursor, sql):
  cursor.execute(sql)
  results = cursor.fetchall()
  print(results)
  return results

def write_csv(path, rquery):
  with open(path, "w", encoding='shift_jis') as file:
    for row in rquery:
      csv = ''
      for data in row:
        csv = csv + str(data) + ','
      file.write(csv[:-1] + '\n')
      file.flush()


関数を実行することにより、Object Storage ServiceにCSVファイルが生成されました。

f:id:sbc_suzuki10:20200709104328p:plain


今回作成されたCSVの内容は以下になります

dev_001@test@001,info,システムが再起動しました。,toyosu,長谷川,hasegawa@test.com
dev_002@test@001,warn,xxxへの接続がタイムアウトしました。,toyosu,四月一日,watanuki@test.com
dev_003@test@001,error,システムが異常終了しました。,shibuya,高橋,takahashi@test.com


関数のトリガー作成

Data Lake Analyticsでのテーブル結合結果を出力するCSVを常に最新状態に保つために、
Function Computeにタイムトリガーを設定し、定期実行するようにします。

参考画像
f:id:sbc_suzuki10:20200709151338p:plain


f:id:sbc_suzuki10:20200709151353p:plain



Data Lake Analytics Part2

f:id:sbc_suzuki10:20200722145005p:plain
Function Computeで出力したObject Storage Service上のCSVを
DataVへ読み込ませるために
Data Lake Analytics上でObject Storage Serviceのスキーマと外部テーブルを作成します。

Data Lake Analyticsでのスキーマ作成 Part2

Data Lake Analyticsコンソールのアクセスポイント管理から
Data Management ServiceコンソールにRoot Accountでログインし、
スキーマをData Lake Analyticsに作成します。

Data Lake AnalyticsでのObject Storage Serviceスキーマ作成

以下のクエリをData Management Serviceで実行し、Object Storage Serviceスキーマを作成します。

CREATE SCHEMA dla_oss_test with DBPROPERTIES(
catalog='oss',
location = 'oss://oss-blog2-test/datav/'
);
f:id:sbc_suzuki10:20200709133523p:plain


Data Lake Analyticsのスキーマ確認

Data Lake Analyticsコンソールのスキーマ管理でスキーマが作成されていることを確認します。

f:id:sbc_suzuki10:20200709134409p:plain



Data Lake Analyticsでの外部テーブル作成 Part2

Data Lake Analyticsコンソールのアクセスポイント管理からData Management ServiceコンソールにRoot Accountでログインし、外部テーブルをData Lake Analyticsに作成します。

Data Lake AnalyticsでのObject Storage Serviceの外部テーブル作成

以下のクエリをData Management Serviceで実行し、Object Storage Serviceの外部テーブルを作成します。

CREATE EXTERNAL TABLE dla_oss_test.tbl_004(
`rawMessage` STRING,
`state` STRING,
`message` STRING,
`branch` STRING,
`user` STRING,
`address` STRING
)
ROW FORMAT
SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' 
WITH SERDEPROPERTIES('serialization.encoding'='SJIS', 'field.delim'=',')
STORED AS TEXTFILE
LOCATION 'oss://oss-blog2-test/datav/dla_result.csv'
TBLPROPERTIES ('skip.header.line.count' = '0')
f:id:sbc_suzuki10:20200709133609p:plain



BI連携(DataV)

f:id:sbc_suzuki10:20200722145030p:plain
Function Computeで生成し、
Data Lake Analyticsに外部テーブルとして取り込んだCSVファイル内容をDataVで可視化します。

複数のデータソースに対するクエリ実行結果をObject Storage Serviceにアップロードすることで、
複数のデータソースのテーブル結合結果がDataVのデータソースとして利用できるようになったため、
これを利用します。

また、DataVプロダクトは少々利用料金がお高いので、
今回用に新たに上海リージョンのDataVを購入することはせず、
データソースのリージョンとは異なりますが、
既に購入済みの東京リージョンのDataVプロダクトを使用します。

DataVの詳細については以下のブログをご覧ください。
※今回はDataVについては簡易的なご紹介となります。

www.sbcloud.co.jp

www.sbcloud.co.jp

www.sbcloud.co.jp

www.sbcloud.co.jp


Data Lake Analyticsへのホワイトリスト追加

Data Lake Analyticsのホワイトリストに以下のドキュメントの「日本 (東京)」のIPアドレスを追加します。

www.alibabacloud.com

参考画像
f:id:sbc_suzuki10:20200709144059p:plain


データソースの追加

www.alibabacloud.com

データソースにMySQL互換データベースを選択し、
Data Lake Analyticsのパブリックエンドポイントと
Data Lake Analyticsで作成したObject Storage Serviceのスキーマを指定します。
※データベースリストが取得できない場合は、手動でスキーマ名を入力します。

f:id:sbc_suzuki10:20200708154814p:plain


プロジェクトの追加

データソースのデータを表示させるため、プロジェクトを作成します。

参考画像
f:id:sbc_suzuki10:20200708191839p:plain


ウィジェットのデータソース指定

ウィジェットにデータを表示させるため、作成したデータソースを指定します。
また、どのデータソースからどのデータを取ってくるのかをSQLで指定します。

f:id:sbc_suzuki10:20200708192014p:plain


プロジェクトへのウィジェット表示

プロジェクトにウィジェットを表示し、
データソースからの正常にデータが反映されているか確認します。
以下ではキーフォームウィジェットにデータソースを指定し、
labelフィールドおよびvalueフィールドにデータソースのフィールド名を指定することで
Object Storage Serviceに保存したCSVの情報の一部を表示しています。

f:id:sbc_suzuki10:20200708192610p:plain


プロジェクトを公開すると以下のように見えます。
以上、簡易ながらもDataVとの連携でした。

f:id:sbc_suzuki10:20200708192855p:plain



まとめ

今回は前回よりも、よりプロダクト連携を活かしたData Lake Analyticsの利用法についてご紹介しました。

前回は複数の異なるプロダクトのテーブルをコンソールで一時的に結合するだけに留まりましたが、
Data Lake AnalyticsとFunction Computeを連携することで、
Table Store、ApsaraDB for RDS、Amazon RDSのテーブルデータを結合し、自動的にDataVへと連携することができました。

単一プロダクトのテーブルデータの可視化であれば、このようなプロダクト連携は不要となり、
DataVやQuick BIなどの可視化プロダクトに直接連携させればよいですが、
複数データソースの分析をしようとしたときは今回のようにData Lake Analyticsが大いに役立つと思われます。

また、今回はテーブル結合結果をObject Storage Serviceに保存しましたが、
RDSなどにテーブル結合結果を書き込み、それをBIツールに連携することも可能です。
データソースに関しても、他クラウドサービスの仮想サーバ上に展開しているデータベースなどもまたData Lake Analyticsに連携可能です。

複数データソースを管理するシーンにおいてData Lake Analyticsの活用をご検討ください!