PostgreSQL 11 新機能解説 オープンソースカンファレンス 2018 Tokyo/Fall SRA OSS, Inc. 日本支社近藤雄太 Copyright 2018 SRA OSS, Inc. Japan All rights reserved. 1

Similar documents
PostgreSQL 11 検証レポート

PostgreSQL 9.4 評価検証報告 SRA OSS, Inc. 日本支社高塚遙 :55 ~ 16:30 PostgreSQL 9.4 最新情報セミナー Copyright 2014 SRA OSS, Inc. Japan All rights reserved. 1

スライド 1

次期バージョン PostgreSQL 10 の 新機能とその後の方向性 SRA OSS, Inc. 日本支社 マーケティング部 PostgreSQL 技術グループ 長田 悠吾 db tech showcase OSS

~~~~~~~~~~~~~~~~~~ wait Call CPU time 1, latch: library cache 7, latch: library cache lock 4, job scheduler co

自己紹介 長田悠吾 (Yugo Nagata) SRA OSS, Inc. 日本支社 PostgreSQL 技術支援 コンサルティング PostgreSQL インターナル講座講師 研究開発 Copyright 2018 SRA OSS, Inc. Japan All right

PGECons技術ドキュメントテンプレート Ver.3

メール全文検索アプリケーション Sylph-Searcher のご紹介 SRA OSS, Inc. 日本支社技術部チーフエンジニア Sylpheed 開発者 山本博之 Copyright 2007 SRA OSS, Inc. Japan All right

Microsoft PowerPoint - db03-5.ppt

PostgreSQL による クラスタ構成の可能性 SRA OSS, Inc. 日本支社 取締役支社長 石井達夫

PostgreSQL 9.3パーティションの効果検証

はじめに コースの概要と目的 Oracle をより効率的に使用するための SQL のチューニング方法について説明します また 索引の有無 SQL の 記述方法がパフォーマンスにどのように影響するのかを実習を通して理解します 受講対象者 アプリケーション開発者 / データベース管理者の方 前提条件 S

Postgres Plus Advanced Server 9.3パーティションテーブルの特徴と性能検証レポート

PostgreSQL SQL チューニング入門 ~ Explaining Explain より ~ 2012 年 11 月 30 日 株式会社アシスト 田中健一朗

PostgreSQL 11 New Features

オープンソースデータベース PostgreSQL 最新動向のご紹介

1,.,,,., RDBM, SQL. OSS,, SQL,,.

PostgreSQL カンファレンス 2013 証券取引バックオフィスにおける Oracle から PostgreSQL への マイグレーション SBI ジャパンネクスト証券株式会社 イアン バーウィック

n n n ( ) n Oracle 16 PostgreSQL 3 MySQL

PostgreSQL10 を導入! 大規模データ分析事例からみる DWH としての PostgreSQL 活用のポイント 2017/12/5 株式会社 NTT データ 2017 NTT DATA

PostgreSQLのセキュリティを極める

スライド 1

第 5 章 結合 結合のパフォーマンスに影響を与える結合の種類と 表の結合順序について内部動作を交えて 説明します 1. 結合処理のチューニング概要 2. 結合の種類 3. 結合順序 4. 結合処理のチューニングポイント 5. 結合関連のヒント

PowerGres Plus V9.1 のご紹介 PostgreSQL をベースに信頼性とセキュリティをプラス SRA OSS,Inc. 日本支社マーケティング部 2015/10 Copyright 2015 SRA OSS, Inc. Japan All rights reserved. 1

スライド 1

Oracle Database 10g Release 2を使用したデータベース・パフォーマンス

1 SQL Server SQL Oracle SQL SQL* Plus PL/SQL 2 SQL Server SQL Server SQL Oracle SQL SQL*Plus SQL Server GUI 1-1 osql 1-1 Transact- SQL SELECTFROM 058

pgpool-ii で PostgreSQL のクラスタを楽々運用しよう OSC Tokyo 2014/12/12 SRA OSS, Inc. 日本支社マーケティング部 OSS 技術グループ 長田 悠吾

Zabbix で PostgreSQL を監視! pg_monz のご紹介 Zabbix Conference Japan 年 11 月 20 日 SRA OSS, Inc. 日本支社マーケティング部

第6回 2014/04/15 OSSユーザーのための勉強会 PostgreSQLの優位性 株式会社アシスト データベース技術本部 喜田 紘介 Copyright 2014 K.K.Ashisuto All Rights Reserved. 1


PowerPoint プレゼンテーション

第 2 章 PL/SQL の基本記述 この章では PL/SQL プログラムの基本的な記述方法について説明します 1. 宣言部 2. 実行部 3. 例外処理部

PowerPoint -O80_REP.PDF

スライド 1

PostgreSQL 10 で作るクラスタ構成 SRA OSS, Inc. 日本支社 取締役支社長 石井達夫

データセンターの効率的な資源活用のためのデータ収集・照会システムの設計

PowerPoint プレゼンテーション

内容 Visual Studio サーバーエクスプローラで学ぶ SQL とデータベース操作... 1 サーバーエクスプローラ... 4 データ接続... 4 データベース操作のサブメニューコンテキスト... 5 データベースのプロパティ... 6 SQL Server... 6 Microsoft

アジェンダ はクラウド上でも十分使えます 1. の概要 とは の導入事例 で利用される構成 2. をクラウドで使う クラウドサービスの分類 Amazon Web Services による構成例 2

,, create table drop table alter table

- 2 Copyright (C) All Rights Reserved.

Caché SQL に関するよくある質問

橡j_Oracle_whitepaper.PDF

Sequel のすすめ 私が SQL を嫌いな理由 とみたまさひろ RubyHiroba Sequel のすすめ - 私が SQL を嫌いな理由 Powered by Rabbit 2.0.7

Exam : J Title : Querying Microsoft SQL Server 2012 Version : DEMO 1 / 10

ハイウォーターマークを知る

日本オラクル株式会社

PowerPoint プレゼンテーション

橡実践Oracle Objects for OLE

第 1 章 条件分岐 この章では 条件に応じて処理を分岐する方法について説明します 1. CASE 式で複雑な条件分岐を実現 2. 関数を使用した条件分岐 3. MERGE 文による条件に応じた DML の実行

スライド 1

test

how-to-decide-a-title

ShikumiBunkakai_2011_10_29

PowerPoint プレゼンテーション

自己紹介 長田悠吾 ( ナガタユウゴ ) SRA OSS, Inc. 日本支社 マーケティング部 OSS 技術グループ pgpool-ii 開発者 PostgreSQL 関連の技術調査 OSS の技術サポート PostgreSQL の開発にも参加 Copyright 2015 SRA OSS, In

…l…b…g…‘†[…N…v…“…O…›…~…fi…OfiÁŸ_

imt_817_tuning_11_1822.PDF

10th Developer Camp - B5

スライド 1

ORACLE PARTITIONING

関係データベース

ハピタス のコピー.pages

Copyright 2008 All Rights Reserved 2

相続支払い対策ポイント

150423HC相続資産圧縮対策のポイント

Microsoft PowerPoint - 第5章補足-DB2組み込みSQL.ppt

PowerPoint Presentation

Microsoft Word - J-jdev_dba_db_developers.doc

日本 PostgreSQL ユーザ会第 28 回しくみ + アプリケーション勉強会 Zabbix を使って PostgreSQL を監視してみよう 2014 年 2 月 1 日 TIS 株式会社中西剛紀 (Yoshinori Nakanishi)

PostgreSQL解析ドキュメント

Transcription:

PostgreSQL 11 新機能解説 2018-10-27 オープンソースカンファレンス 2018 Tokyo/Fall SRA OSS, Inc. 日本支社近藤雄太 Copyright 2018 SRA OSS, Inc. Japan All rights reserved. 1

リリース間近! PostgreSQL 11 新機能解説 Copyright 2018 SRA OSS, Inc. Japan All rights reserved. 2

リリース間近! PostgreSQL 11 新機能解説 10/18 に 11.0 がリリースされました! Copyright 2018 SRA OSS, Inc. Japan All rights reserved. 3

自己紹介 近藤雄太 所属 : SRA OSS, Inc. 日本支社 PostgreSQL 技術グループ 仕事内容 : PostgreSQL サポート 商用 PostgreSQL 開発 PostgreSQL トレーニング講師 Copyright 2018 SRA OSS, Inc. Japan All rights reserved. 4

PostgreSQL とは 多機能 高性能 かつオープンソースのリレーショナルデータベース管理システム INGRES('70),POSTGRES('80) 由来の歴史 BSD スタイルのライセンス 特定オーナー企業が無い PostgreSQL の開発体制 企業 ある種の OSS 開発体制 企業 企業 製品 開発者 企業 PostgreSQL Copyright 2018 SRA OSS, Inc. Japan All rights reserved. 5

これまでのリリース Bitmap Scan HOT update Replication manycpu スケール JSONB, スロット パラレル 論理 Replication Windows, PITR 12CPU スケール 分析関数再帰 SQL 同期 Repli, FDW マテビュー更新ビュー BRIN 行 security UPSERT 2005-01 2006-12 2009-07 2011-09 2013-09 2016-01 2017-10 2005-11 2008-02 2010-09 2012-09 2014-12 2016-09 Copyright 2018 SRA OSS, Inc. Japan All rights reserved. 6

現在の PostgreSQL(+ 周辺ツール / 拡張 ) の実力 SQL 機能的には : ANSI SQL:2011コア概ね準拠 各種の組み込み言語 地理情報システム JSON 型 他 DB 連携 (FDW) クラスタ構成 : インスタンス単位レプリケーション テーブル単位論理レプリケーション HAクラスタ BDRクラスタ MPPクラスタ (shared nothing) RAC 型 (shared disk) は不可 性能的には : OLTPの多 CPUスケール : 参照 96コアでもスケール更新 96コアでもスケール OLAPには : パラレルクエリ対応拡大 運用支援など : ログ / 状態の集積分析ツール pg_statsinfo / pg_badger クライアントツール PgAdmin4 / SI Object Browser AWS / Azure / Google Cloud で対応 AWS Aurora で対応 Copyright 2018 SRA OSS, Inc. Japan All rights reserved. 7

PostgreSQL 11 での拡張ポイント JITコンパイル 途中でCOMMIT/ROLLBACKできるストアドプロシージャ パーティショニング機能の拡充 パラレル処理の拡充 SCRAMチャンネルバインド その他 Copyright 2018 SRA OSS, Inc. Japan All rights reserved. 8

JIT コンパイル (1) SQL 実行にあたって Just In Time コンパイルを行い ネイティブ実行を実現 LLVM コンパイラ基盤を使用 繰り返し処理回数が多い場合に プランナコストで JIT 適用を判断 行データ取り出し SELECT リストの式 WHERE 句の式に適用 従来の実行 SQL 文字列 Parseツリー Executorツリー実行 JITによる実行 SQL 文字列 Parseツリー Executorツリー bitcode 実行 SELECT id, c1, c2, c3, (c4 * random() * 10)::int FROM t1 WHERE typ = 101; Copyright 2018 SRA OSS, Inc. Japan All rights reserved. 9

JIT コンパイル (2) 簡易な性能テスト例 : 11 の関数 演算子と 3 箇所のキャスト 1 億件のループ このくらいから効果がでる CREATE FUNCTION f100000000() RETURNS SETOF bigint ROWS 100000000 LANGUAGE sql AS $$ SELECT g FROM generate_series(1::bigint, 100000000::bigint) AS g; $$; SELECT g, 'X is "' random() * pi() * substr((g * ln(g::float8 + g / 2))::text, 1, 5)::float8 '"' FROM f100000000() AS g; Copyright 2018 SRA OSS, Inc. Japan All rights reserved. 10

ストアドプロシージャ (1) 途中で COMMIT/ROLLBACK できるストアドプロシージャ Oracle Database の PL/SQL から移植で役立つ : FOR i IN 1..1000 LOOP FOR j IN 1..100 LOOP INSERT INTO t_sample SELECT * FROM f1(i * 100 + j); END LOOP; COMMIT; END LOOP; : 100 件ごとに COMMIT しつつデータ生成する PL/pgSQL のユーザ定義関数ではそのままには実現できない 新たなデータベースオブジェクト PROCEDURE CALL で呼び出す 中で COMMIT と ROLLBACK が可能 暗黙に次トランザクションが開始される PL/SQL と似た振る舞い Copyright 2018 SRA OSS, Inc. Japan All rights reserved. 11

ストアドプロシージャ (2) プロシージャで COMMIT / ROLLBACK が利用可能 いろいろ制限がある 入れ子で CALL しても サブトランザクションにはならない 明示的トランザクション内では実行できない 関数内からの CALL ではトランザクション制御不可 他の PL 言語でも対応 db1=# CREATE PROCEDURE p_tx1() LANGUAGE plpgsql AS $$ BEGIN FOR i IN 0..9 LOOP INSERT INTO test1 (a) VALUES (i); IF i % 2 = 0 THEN COMMIT; ELSE ROLLBACK; END IF; END LOOP; END; $$; db1=# CALL p_tx1(); db1=# SELECT * FROM test1; a --- 0 2 4 6 8 (5 rows) さしあたりはシンプルな用途に使いたい Copyright 2018 SRA OSS, Inc. Japan All rights reserved. 12

パーティショニング機能の拡充 (1) パーティションテーブル全体にインデックスを作成できる パーティションテーブル全体に外部キーを設定できる パーティション間の行更新によるデータ移動 ハッシュパーティショニング 問い合わせでのパーティション除外処理の改善 問い合わせでのパーティション指向の結合 / 集約 パーティションテーブル パーティション 1 バージョン 10 までで欠けていた機能が補完された パーティション 2 パーティション 3 Copyright 2018 SRA OSS, Inc. Japan All rights reserved. 13

パーティショニング機能の拡充 (2) パーティションテーブル全体にインデックスを作成できる グローバルインデックスが作られるわけではない 各パーティションに各々インデックスが作られるだけ パーティション分割条件の列を含む必要がある パーティションテーブル全体に主キー制約が作れる パーティションテーブル全体に外部キーを設定できる パーティションテーブルを外部キーの被参照テーブルにするのは不可 t_log_parted log_id, ts, message, severity_level t_severity_level_master severity_level, description これは OK t_log_detail_parted log_id, detail_message これは NG Copyright 2018 SRA OSS, Inc. Japan All rights reserved. 14

パーティショニング機能の拡充 (3) パーティション間の行更新によるデータ移動 パーティションテーブル t_log パーティション 1 (2016 年データ ) パーティション 2 (2017 年データ ) パーティション 3 (2018 年データ ) UPDATE t_log SET ts = '2018-08-03 12:00' WHERE log_id = 12345; ハッシュパーティショニング キー列のハッシュ値 ( 正整数値 ) の剰余でパーティション分けを行う 各パーティションに行が均一に配付される パラレル全件スキャンに向いている ハッシュ対象の列 (col1, col2) ハッシュ値 1234567 WITH (MODULUS 5, REMAINDER 2) のパーティションに格納 Copyright 2018 SRA OSS, Inc. Japan All rights reserved. 15

パーティショニング機能の拡充 (4) 問い合わせでのパーティション除外処理の改善 従来の constraint_exclusion では除外できなかったケースに対応 SELECT count(*) FROM t_log WHERE ts < '2017-01-01' など プラン作成時点では判別できないケースでも実行時に除外する enable_partition_pruning = on で有効になる ( デフォルト ) 問い合わせでのパーティション指向の結合 / 集約 結合の例 : SELECT lo.mes, ld.detail FROM t_log_parted lo LEFT JOIN t_log_detail_parted ld ON (lo.id = ld.id); パーティションテーブル t_log_parted パーティション 1 (id: 100000 ~ 199999) パーティション 2 (id: 200000 ~ 299999) パーティション 3 (id: 300000 ~ 399999) 結合 結合 結合 パーティションテーブル t_log_detail_parted パーティション 1 (id: 100000 ~ 199999) パーティション 2 (id: 200000 ~ 299999) パーティション 3 (id: 300000 ~ 399999) Copyright 2018 SRA OSS, Inc. Japan All rights reserved. 16

パラレル処理の拡充 (1) 並列ハッシュ結合 並列 Append 新しいプランナ要素の追加ほとんどの主要プランナ要素が並列化された 並列 CREATE TABLE.. AS 並列 SELECT.. INTO.. 並列 CREATE MATERIALIZED VIEW.. これまで これら構文では 並列処理が行われなかった 並列インデックス作成 db1=# CREATE INDEX ON t_log (ts, id); DEBUG: building index "t_log_0_ts_id_idx" on table "t_log_0" with request for 1 parallel worker DEBUG: building index "t_log_1_ts_id_idx" on table "t_log_1" with request for 1 parallel worker DEBUG: building index "t_log_2_ts_id_idx" on table "t_log_2" serially CREATE INDEX 他にも多数の細かなパラレル対応 並列数は max_parallel_maintenance_workers 設定の影響を受ける /Btree のみ Copyright 2018 SRA OSS, Inc. Japan All rights reserved. 17

パラレル処理の拡充 (2) 並列ハッシュ結合 並列 Append 例 b1=# explain SELECT max(length(l.mes d.detail)) FROM t_log l LEFT JOIN t_log_detail d ON (l.id = d.id); QUERY PLAN ----------------------------------------------------------------- Finalize Aggregate (cost=15810.11..15810.12 rows=1 width=4) -> Gather (cost=15809.89..15810.10 rows=2 width=4) Workers Planned: 2 -> Partial Aggregate (cost=14809.89..14809.90 rows=1 width=4) -> Parallel Hash Left Join (cost=6192.53..14028.64 rows=104167 width=66) Hash Cond: (lo.id = ld.id) -> Parallel Append (cost=0.00..4569.43 rows=104168 width=37) -> Parallel Seq Scan on t_log_0 lo (cost=0.00..1619.24 rows=58824 width=37) -> Parallel Seq Scan on t_log_1 lo_1 (cost=0.00..1619.24 rows=58824 width=37) : Copyright 2018 SRA OSS, Inc. Japan All rights reserved. 18

SCRAM チャンネルバインド SCRAM 認証がチャンネルバインドに対応 SSL 接続で利用可能 セッション固有情報を認証に使う やりとり内容を別のセッションに使いまわすことができない Man-in-the-middle 攻撃を防ぐ SSL 接続 + scram-sha-256 認証であればデフォルトで使われる Copyright 2018 SRA OSS, Inc. Japan All rights reserved. 20

その他 (1) ウィンドウ関数の対応構文追加 GROUPS ウィンドウフレーム対応 ウィンドウフレーム RANGE モード対応 ウィンドウフレームの EXCLUDE オプション 欠けていた機能の補完 db1=# SELECT * FROM t_temperature2 ; id dt t ----+---------------------+------- 1 2018-08-24 00:00:00 18.20 2 2018-08-24 00:11:18 20.74 3 2018-08-24 00:23:49 22.65 4 2018-08-24 00:35:41 21.51 5 2018-08-24 00:38:29 20.13 : : : : 142 2018-08-24 22:40:37 27.74 143 2018-08-24 22:55:29 26.32 144 2018-08-24 23:14:59 24.40 145 2018-08-24 23:27:11 23.61 146 2018-08-24 23:47:06 27.40 (146 rows) 例えば 一定でない間隔で採取された 8 月 24 日のある所の気温データがあるとして Copyright 2018 SRA OSS, Inc. Japan All rights reserved. 21

その他 (2) ウィンドウ関数の対応構文追加 SELECT dt, t, round(avg(t) OVER (PARTITION BY to_char(dt,'yyyymmdd-hh24')), 2) AS t_avg, round(avg(t) OVER ( ORDER BY to_char(dt,'yyyymmdd-hh24') GROUPS BETWEEN 1 PRECEDING AND 1 FOLLOWING), 2) AS t_avg3 FROM t_temperature2; dt t t_avg t_avg3 ---------------------+-------+-------+-------- : : : 2018-08-24 08:30:18 29.28 29.06 28.48 2018-08-24 08:39:33 30.59 29.06 28.48 2018-08-24 08:56:40 29.82 29.06 28.48 2018-08-24 09:15:05 27.54 28.14 29.00 2018-08-24 09:32:42 29.11 28.14 29.00 2018-08-24 09:40:13 27.75 28.14 29.00 2018-08-24 09:45:58 28.14 28.14 29.00 2018-08-24 10:00:06 29.11 29.62 29.91 2018-08-24 10:12:01 29.15 29.62 29.91 2018-08-24 10:19:12 28.72 29.62 29.91 2018-08-24 10:39:05 29.65 29.62 29.91 2018-08-24 10:52:36 31.47 29.62 29.91 2018-08-24 11:12:09 32.01 31.12 31.47 2018-08-24 11:13:22 30.55 31.12 31.47 2018-08-24 11:20:27 31.89 31.12 31.47 : : : t_avg は含まれる 1 時間単位の平均 年月日時 でパーティション区切り これは以前から使えた機能 t_avg3 は含まれる前後 3 時間の平均 年月日時 順で並べて同じ値を持つ前後 1 件をフレームに含めている Copyright 2018 SRA OSS, Inc. Japan All rights reserved. 22

その他 (3) ウィンドウ関数の対応構文追加 SELECT dt, t, round(avg(t) OVER (ORDER BY dt RANGE BETWEEN '1 hour'::interval PRECEDING AND '1 hour'::interval FOLLOWING),2) AS t_avg_1h, round(avg(t) OVER (ORDER BY dt RANGE BETWEEN '1 hour'::interval PRECEDING AND '1 hour'::interval FOLLOWING EXCLUDE CURRENT ROW ), 2) AS t_avg_1hx FROM t_temperature2; dt t t_avg_1h t_avg_1hx ---------------------+-------+----------+----------- : : : 2018-08-24 08:30:18 29.28 28.74 28.68 2018-08-24 08:39:33 30.59 28.77 28.57 2018-08-24 08:56:40 29.82 28.72 28.61 2018-08-24 09:15:05 27.54 28.94 29.09 2018-08-24 09:32:42 29.11 28.88 28.85 2018-08-24 09:40:13 27.75 28.78 28.91 2018-08-24 09:45:58 28.14 28.78 28.86 2018-08-24 10:00:06 29.11 28.96 28.94 2018-08-24 10:12:01 29.15 28.96 28.94 2018-08-24 10:19:12 28.72 29.57 29.66 2018-08-24 10:39:05 29.65 30.04 30.08 2018-08-24 10:52:36 31.47 30.53 30.43 2018-08-24 11:12:09 32.01 31.06 30.97 2018-08-24 11:13:22 30.55 31.06 31.11 2018-08-24 11:20:27 31.89 31.30 31.23 : : : t_avg_1h は前後 1 時間の平均 当該行の値との距離でフレーム範囲を決めている t_avg_1hx は前後 1 時間から当該行を除いた平均 EXCLUDE で除外している Copyright 2018 SRA OSS, Inc. Japan All rights reserved. 23

その他 (4) ALTER TABLE.. ADD COLUMN 改善 デフォルト値を伴った ADD COLUMN が高速化 db1=# CREATE TABLE t_alt (id int primary key, c1 int); db1=# INSERT INTO t_alt SELECT g, g FROM generate_series(1, 100000) AS g; db1=# \timing Timing is on. db1=# ALTER TABLE t_alt ADD c2 int; ALTER TABLE Time: 16.918 ms db1=# ALTER TABLE t_alt ADD c3 int DEFAULT 100; ALTER TABLE Time: 25.824 ms 同マシンPostgreSQL 10 では 600~700ms デフォルト値を行データに格納しない ALTER TYPE は従来と変わらず遅い db1=# ALTER TABLE t_alt ALTER c3 TYPE bigint; ALTER TABLE Time: 640.206 ms db1=# ALTER TABLE t_alt ALTER c3 TYPE int; ALTER TABLE Time: 602.989 ms Copyright 2018 SRA OSS, Inc. Japan All rights reserved. 24

その他 (5) CREATE INDEX が INCLUDE 句に対応 index-only-scan 用 CREATE INDEX idx1234 ON t1 (c1, c2) INCLUDE (c3, c4); initdb 時に WAL ファイルサイズ設定 従来は --with-wal-segsize=nn としてビルド時に指定 blocksize wal-blocksize については変わらずビルド時に指定 ロジカルレプリケーションで TRUNCATE 対応 ビューに対するテーブルロック 各種 psql pgbench の機能追加 各種のロック軽減とオプティマイザ改良 Copyright 2018 SRA OSS, Inc. Japan All rights reserved. 25

まとめ 強力な開発体制を持つ PostgreSQL の適用範囲は十分に広い PostgreSQL 11 は未実現機能を埋めていくバージョンアップ 累積データに対する分析問い合わせむけの拡充 JIT / パラレル問い合わせ / パーティショニング / ウィンドウ関数 Oracle からの移植でのニーズによる拡充 プロシージャでの COMMIT / ROLLBACK クラウド利用をにらんだ SSL 接続の拡充 SCRAM チャンネルバインド Copyright 2018 SRA OSS, Inc. Japan All rights reserved. 26

まとめ ご清聴ありがとうございました Copyright 2018 SRA OSS, Inc. Japan All rights reserved. 27

オープンソースとともに URL: http://www.sraoss.co.jp/ E-mail: sales@sraoss.co.jp Tel: 03-5979-2701 Copyright 2018 SRA OSS, Inc. Japan All rights reserved. 28