Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Vertica 7.2.2 新機能

5 views

Published on

Vertica 7.2.2 新機能

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Vertica 7.2.2 新機能

  1. 1. Vertica 7.2.2 新機能 (a.k.a Excavator SP2) HPE Japan Bigdata Platform Presales
  2. 2. Vertica 7.2.2 新機能 目次 1.データ分析機能拡張 2.インストールとアップグレード 3.クライアント接続 4.セキュリティ 5.クエリーオプティマイザ 6.テーブル機能 7.データロード 8.マネージメントコンソール 9.システムテーブルアップデート 10.SQL関数とステートメント 11.バックアップ/リストア/リカバリ 12.Place 13.Kafka連携 14.カタログサイズの縮小 2
  3. 3. データ分析機能拡張 • In-DB Machine Learning 3
  4. 4. データ分析機能 In-DB Machine Learning Machine Learning for Predictive Analytics – Vertica内に並列分散配置されたデータを用いて、機械学習系の分析が可能に – 7.2.2(SP2)時点では、以下のアルゴリズムと機能に対応 アルゴリズム モデル作成/学習 予測分析 モデル評価 線形回帰 ロジスティック回帰 K-meansクラスタリング モデル管理 モデル情報の参照 モデル名の変更 モデルの削除 データ準備 正規化
  5. 5. カタログサイズの縮小 • MinMax Scaling 5
  6. 6. カタログサイズの縮小 MinMax Scaling Min Max MiniROSMinMax Object ■新MiniROSの仕様変更 • 7.2. SP1で対応 Integral Boolean Float Numeric • Ver 7.2 SP2で対応 Binary/Varbinary • 対象外のデータ(MinMax Objectを作成) 文字列(12文字以上) MiniROS Min Max ■最新MinMax Objectへの更新について  バージョンアップ後、バージョンアップ前に作成されたMinMax objectsは更新の対象外  rollover_minmax_obj()を実行することで、バージョンアップ前に 作成されたMinMax objectを最新アーキテクチャに更新すること が可能 カタログサイズ45%を削減(変更前のバージョン比) MinMax 7.2. SP1以前の仕様 7.2. SP1以降の仕様 エンコード
  7. 7. インストールと アップグレード 7 • 関連パッケージの再インストール機能 • pid_maxの設定
  8. 8. インストールとアップグレード 関連パッケージの再インストール機能 Vertica関連パッケージのみの強制再インストールを実行することが可能に 8 $ admintools -t install_package -d <database_name> -p <password> -P ALL | <Package> --force-reinstall Installing package approximate... ...Success! Installing package flextable... ...Success! Installing package hcat... ...Success! Installing package hdfsconnector... ...Success! Installing package idol... ...Success! Installing package kafka... ...Success! Installing package logsearch... ...Success! Installing package pload... ...Success! Installing package txtindex... ...Success! Installing package AWS... ...Success! Installing package AdvancedAnalytics... ...Success!
  9. 9. インストールとアップグレード pid_maxの設定 新しいインストール/アップグレード要件として、「pid_maxが少なくとも524,288であること」が追加 インストール/アップグレード時に、Kernel Parameterを自動で書き換え ※手動で事前設定する場合は、以下のコマンドを実行 9 # sysctl -w kernel.pid_max=524288
  10. 10. クライアント接続 10 • vsqlの新オプション trailingrecordsep • セッションクライアントラベルの設定(vsql/JDBC) • Power Pivot(ODBC/OLE DB)からの接続に対する機能拡張
  11. 11. [dbadmin@V01 ~]$ vsql -A -t -Q Welcome to vsql, the Vertica Analytic Database interactive terminal. Type: h or ? for help with vsql commands g or terminate with semicolon to execute query q to quit dbadmin=> select * from trail_sep ; 1|aaa dbadmin=> dbadmin=> pset trailingrecordsep Trailing record separator is off. dbadmin=> dbadmin=> select * from trail_sep ; 1|aaa dbadmin=> クライアント接続 vsqlにて、Select結果の最終行に空白行を挿入することが可能に(trailingrecordsep) – vsqlログイン時の引数に、「-Q」を指定する、もしくはセッション内で「pset trailingrecordsep」を実行 – Unaligned Outputモード(-A)においてのみ有効 – ファイル抽出処理の連続実行時に、処理単位でレコードを区切ることが容易となる 11 ← trailingrecordsep = ONでログイン ← 最終行に空白行が挿入 ← 最終行に空白行なし(デフォルト) ← trailingrecordsep = OFFに切替
  12. 12. クライアント接続 vsql/JDBCにて、セッション接続後に、クライアントラベルを設定することが可能に アプリケーション/クライアント接続単位でラベルを付与することが可能 12 vsqlの例 --クライアントラベルの設定 => SELECT SET_CLIENT_LABEL('load_application'); SET_CLIENT_LABEL ---------------------------------------------- client_label set to load_application (1 row) --クライアントラベルの確認 => SELECT GET_CLIENT_LABEL(); GET_CLIENT_LABEL -------------------------- load_application (1 row) --各種システムテーブルからも確認可能 => select client_label from sessions; client_label -------------------------- load_application (1 rows) JDBCの例 Connection conn = this.dataSource.getConnection(); /* クライアントラベルの設定 */ conn.setClientInfo("client_label", "jdbc"); /* クライアントラベルの確認 */ String label_name = conn.getClientInfo("client_label"); // label_name = “jdbc” conn.close();
  13. 13. クライアント接続 Power Pivot(ODBC/OLE DB)からの接続に対する機能拡張:[ ]文字のサポート – Power Pivotが生成するクエリー select [schema_name].[table_name].* from [schema_name].[table_name]; ※これまでは、[]がVertica側で構文エラーとなっていた – 7.2.2(SP2)から、[]を””に自動変換して実行することが可能に select “schema_name”.”table_name”.* from “schema_name”.”table_name”; 13 ■ODBCの設定(DSN) Client settings -> third party options -> Enable Square Bracket QueriesのチェックボックスをONにする ■OLE DB Propertiesの設定 ConvertSquareBracketIdentifiersオプションをONにする
  14. 14. セキュリティ 14 • 行レベルアクセスポリシー
  15. 15. セキュリティ 行レベルアクセスポリシー ロール/ユーザー単位で、テーブルの行レベル権限制御が可能に custID password ssn 1 **** 12345678901 2 **** 12345678902 3 **** 12345678903 broker custID u1 1 u2 2 u3 3 CREATE ACCESS POLICY ON schema.customers_table FOR rows WHERE ENABLED_ROLE('manager') or (ENABLED_ROLE('broker') AND customers_table.custID in (SELECT broker_info.custID FROM broker_info WHERE broker = CURRENT_USER())) ENABLE; customers_table broker_info (制御用管理テーブル) u1 u2 u3 manager manager ロール broker ロール
  16. 16. クエリーオプティマイザ 16 • テーブルの結合時の内部/外部指定(FORCE OUTERオプション) • マルチレベルのDISTINCT集計の実行をサポート • 一意性の保証されたカラムを考慮した最適な実行計画を算出
  17. 17. クエリーオプティマイザ テーブルの結合時の内部/外部指定を制御可能に(FORCE OUTERオプション) – 新データベースパラメーター「EnableForceOuter」をONにすることで本機能が使用可能(デフォルトはOFF) – テーブルごとに、結合時に内部テーブルとするか外部テーブルとするかの相対値を指定(デフォルトは5) – FORCE OUTERの値が相対的に小さいテーブルは、結合時に内部テーブルとして指定される – FORCE OUTERの値が相対的に大きいテーブルは、結合時に外部テーブルとして指定される => ALTER TABLE “Table 1” FORCE OUTER 3; => ALTER TABLE “Table 2” FORCE OUTER 8; ALTER DATBASE データベース SET EnableForceOuter = 1 ; ■容量の小さいテーブル・・・内部テーブルとして指定を推奨 ■容量の大きいテーブル・・・外部テーブルとして指定を推奨
  18. 18. クエリーオプティマイザ マルチレベルのDISTINCT集計の実行をサポート Category Year Price books 30 books 2005 40 books 2005 30 books 2005 30 books 2005 30 books 2006 60 books 2006 40 books 2006 50 books 2006 40 Category Year Total books (null) 30 books 2005 130 books 2006 190 books 350 SELECT category, year, SUM(price) Total FROM sales GROUP BY ROLLUP(category,year) HAVING category = 'books' ORDER BY grouping_id(); Salesテーブル (総計) V7.2.2(SP2)以前から可能な処理 (マルチレベルの集計)
  19. 19. クエリーオプティマイザ マルチレベルのDISTINCT集計の実行をサポート Category Year Price books 30 books 2005 40 books 2005 30 books 2005 30 books 2005 30 books 2006 60 books 2006 40 books 2006 50 books 2006 40 Category Year books (null) books 2005 books 2006 重複排除 SELECT DISTINCT category, year FROM sales GROUP BY ROLLUP(category, year) HAVING GROUPING (year)=0; V7.2.2(SP2)から可能になった処理 (マルチレベルのDISTINCT集計 例1) Salesテーブル
  20. 20. クエリーオプティマイザ マルチレベルのDISTINCT集計の実行をサポート Category Year Price books 30 books 2005 40 books 2005 30 books 2005 30 books 2005 30 books 2006 60 books 2006 40 books 2006 50 books 2006 40 Category Year Total books (null) 30 books 2005 70 books 2006 150 books 180 30 40 重複排除 (全体のDistinct総計) SELECT category, year, SUM(DISTINCT price) Total FROM sales GROUP BY ROLLUP(category,year) HAVING category = 'books' ORDER BY grouping_id(); V7.2.2(SP2)から可能になった処理 (マルチレベルのDISTINCT集計 例2) Salesテーブル
  21. 21. クエリーオプティマイザ 一意性の保証されたカラムを考慮した最適な実行計画を算出 データベースパラメーター「EnableUniquenessOptimization」がON(SP2からONがデフォルト)の場合で、 以下のSQL構文内に、一意性を有するデータが格納されたカラム(※)が使用された場合、実行計画を最適化 – Left / Right Outer Join – Group By – Order By ※一意性を有するデータ – AUTO_INCREMENTカラム – IDENTITYカラム – Primary Key制約付きのカラム – Unique制約付きのカラム – Group By、Distinct、Union、Intersect、Exceptなどを用いて重複排除をしたSelect結果
  22. 22. クエリーオプティマイザ 一意性の保証されたカラムを考慮した最適な実行計画を算出 例1: Left Outer Join CREATE TABLE T1 (a IDENTITY, b INT); //IDENTITYは一意な値 CREATE TABLE T2 (a IDENTITY, b INT); //IDENTITYは一意な値 EXPLAIN SELECT T1.* FROM T1 LEFT JOIN T2 ON T1.b = T2.a; EnableUniquenessOptimization is on The following JGNodes/Tables have been pruned due to uniqueness guarantee: Node 1 (public.T2) Access Path: +-STORAGE ACCESS for T1 (PATH ID: 1) | Projection: public.T1_super | Materialize: T1.a, T1.b T2の結合キーが一意性を有するカラムで、 SQL内でT2テーブルの値を使用した処理 がない場合、Joinの実行をスキップ
  23. 23. クエリーオプティマイザ 一意性の保証されたカラムを考慮した最適な実行計画を算出 例2: Group By 例3: Order By CREATE TABLE T (a IDENTITY, b INT); //IDENTITYは一意な値 EXPLAIN SELECT a FROM T GROUP BY a; //Group Byに一意な値の入ったカラムを指定 EnableUniquenessOptimization is on Access Path: +-STORAGE ACCESS for t [Cost: 604, Rows: 10K (NO STATISTICS)] (PATH ID: 1) | Projection: public.T_super | Materialize: t.a Group Byを実施する意味がないので、Group Byの実行をスキップ CREATE TABLE T (a IDENTITY, b INT); //IDENTITYは一意な値 EXPLAIN SELECT * FROM T ORDER BY a, b; EnableUniquenessOptimization is on Access Path: +-SORT [Cost: 1K, Rows: 10K (NO STATISTICS)] (PATH ID: 1) | Order: T.a ASC | +---> STORAGE ACCESS for t [Cost: 1K, Rows: 10K (NO STATISTICS)] (PATH ID: 2) | | Projection: public.T_super | | Materialize: T.a, T.b T.aに一意性があり、T.bはOrder Byの実施が無意味なので、実行をスキップ
  24. 24. テーブル機能 24 • 外部表(External table)のデータ型変更
  25. 25. テーブル機能 外部表(External table)のデータ型変更が可能に 通常のテーブルと同様、ALTER TABLE構文でデータ型変更が可能 – データ型変更時は、データとデータ型の整合性チェックは行わないため、データ型不正がある場合にはクエリー実 行時にエラーとなる – 外部表に定義したデータ型のサイズが、外部表の元となるファイル上のカラムのレコードサイズよりも小さい場合、 サイズ超過分は格納されない(破棄される) => CREATE EXTERNAL TABLE t (a char(10), b binary(20)) AS COPY FROM ‘/home/dbadmin/t.csv'; => ALTER TABLE t ALTER COLUMN a SET DATA TYPE long varchar(1000000); => ALTER TABLE t ALTER COLUMN b SET DATA TYPE long varbinary(1000000);
  26. 26. データロード 26 • AWS用ライブラリ(S3 Import/Export機能) • Favroparserを使ったロード性能の向上 • 複数JSONファイルのロード実行時のファイル単位エラーハンドリング
  27. 27. データロード AWS用ライブラリ(S3 Import/Export機能)が追加 Import Export COPY テーブル SOURCE S3(url=‘https://s3-ap-northeast-1.amazonaws.com/バケット/ファイル’); SELECT S3EXPORT( * USING PARAMETERS url=‘https://s3-ap-northeast-1.amazonaws.com/バケット/ファイル’) OVER() FROM テーブル; Import Export S3へアクセスするための情報 を、DBに予め登録 ■Access Key ■Secret Access Key ■Region
  28. 28. データロード Favroparserを使ったロード性能の向上 Favroparserを使用し、AvroファイルをVerticaテーブル(フレックステーブルは除く)にCOPYする際のパフォーマン スが向上 COPY A B C C B A COPY テーブル FROM '/home/dbadmin/data/flexcsv/weather.avro' PARSER favroparser(); AVRO Data Type Vertica Data TypeParse + Load
  29. 29. データロード 複数JSONファイルのロード実行時、ファイル単位でエラーハンドリングが可能に 新パラメーター「ERROR TOLERANCE」 V7.2.2以前 – 読み取りファイルのうち1つでも不正レコードがあると、ロード全体がエラーとなってしまっていた – エラー原因(どのファイルがなぜ不正か)の判別ができなかった V7.2.2 – ERROR TOLERANCEオプションを付与することにより、不正レコードのあるファイルのみがエラーとなる – エラー原因の判別が可能となる COPY テーブル FROM ‘hundreds_of_json_files_*.txt’ PARSER FJSONParser() ERROR TOLERANCE;
  30. 30. マネージメントコンソール 30 • Emailアラート機能 • Message Centerの拡張(Notification Menu) • EXPLAIN実行で構文エラー発生時のHighlight機能 • REST APIの拡張機能
  31. 31. マネージメントコンソール Emailアラート機能 必要なThresholdアラートの情報を、任意のタイミングでEmail配信可能に
  32. 32. マネージメントコンソール Message Centerの拡張(Notification Menu) Message Centerをクリックす ると、詳細ページに飛ぶ前に、 最新メッセージの確認が可能 この画面でメッセージの削除、 アーカイブも可能
  33. 33. マネージメントコンソール EXPLAIN実行で構文エラー発生時、エラー箇所をHighlight可能に エラー箇所をHighlight表示
  34. 34. マネージメントコンソール REST APIの拡張機能 – REST API経由で、Management Consoleサーバーの時刻とタイムゾーンを取得可能となった – REST API経由で、アラート情報を時間帯指定付きで取得可能となった # curl -k -H “MC-User-ApiKey: ***” https://<MC_Server>:5450/webui/api/mcTimeInfo {"mc_current_time":"Tue, 2016-04-05 18:14:08 +0900","mc_timezone":"Asia/Tokyo"} # curl -k -H “MC-User-ApiKey: ***” https://<MC_Server>:5450/webui/api/alerts?types=critical&time_from=2016-04-04T12-00&time_to=2016-04- 05T12-00 [ { "alerts":[ { "id":5502, : "request_time":"2016-04-04 15:50:26 -0500" } ]
  35. 35. システムテーブル アップデート 35 • 既存6テーブルにOSユーザー名カラムが追加 • 新規3テーブルが追加
  36. 36. システムテーブルアップデート システムテーブルの変更点 CLIENT_OS_USER_NAME(OSユーザー名)カラムが追加されたシステムテーブル CURRENT_SESSION LOGIN_FAILURES SESSION_PROFILES SESSIONS SYSTEM_SESSIONS USER_SESSIONS 新規システムテーブル 内容 KEYWORDS Verticaの予約語に関する情報 REMOTE_REPLICATION_STATUS オブジェクトレプリケーションタスクのステータス情報 TRUNCATED_SCHEMATA coexistモードのリストア実行時(オリジナルスキーマ名にTimestamp情報を付加して 別スキーマを作成し、その配下のオブジェクトとしてリストアする)、スキーマ名が制 限値の128文字を超過する場合、制限値に収めるよう文字数を切り詰める動作とな る。この場合のオリジナルスキーマ名とリストアスキーマ名のマッピング一覧を格納
  37. 37. SQL関数とステートメント 46 • 正規表現関数がLONG VARCHARに対応
  38. 38. SQL関数とステートメント 正規表現関数がLONG VARCHARに対応 LONG VARCHARに対応した正規表現関数 V7.2.2(SP2)での新規関数 regexp_like regexp_not_like regexp_ilike regexp_not_ilike regexp_instr regexp_count regexp_substr regexp_replace => SELECT v from テーブル WHERE REGEXP_ILIKE(v,'^record.+2$'); v ----------------- Record 4 line 2 record 2 line 2 (2 rows) Regexp_ilikeの例 正規表現を使った曖昧検索が可能 ・“Record”から始まり、”2”で終わるレコード ・大文字小文字を意識しない
  39. 39. バックアップ/リストア/リカバリ 48 • バックアップの完全性チェック機能 • バックアップ修繕機能 • テーブルの並列リカバリー • テーブルレプリケーション機能
  40. 40. – バックアップ取得前に2つのチェック方法の追加 – ‘quick’モード:バックアップのマニフェストに、全てのスナップショットが含まれているかどうかチェック – ‘full’モード:ファイルシステムのメタデータに対して、スナップショットのマニフェストが記録されている全てのオブジェクトを チェック バックアップ/リストア/リカバリ バックアップの完全性チェック機能 <’quick’モードの実行例> $ vbr -t quick-check -c config.ini <’full’モードの実行例> $ vbr -t full-check -c config.ini --report-file=file_path
  41. 41. – バックアップ取得前に2つの修繕方法の追加 – ‘quick’モード:スナップショットのマニフェストに基づいてバックアップのマニフェストを再作成し、古いものと置き換える – ‘collect garbage’モード:バックアップ場所で参照されていない全てのオブジェクトを削除し、バックアップのマニフェストを再作 成し置き換える バックアップ/リストア/リカバリ バックアップ修繕機能 <’quick’モードの実行例> $ vbr -t quick-repair -c config.ini <’full’モードの実行例> $ vbr -t collect-garbage -c config.ini --report-file file_path
  42. 42. – テーブルの並列リカバリーが実行可能に – RecoveryプールのMaxconcurrencyで並列実行度を調整可能 – ALTER RESOURCE POOL recovery MaxConcurrency #; – table_recovery_statusテーブルで、ノード毎のリカバリーの進行状況を確認可能 – table_recoveriesテーブルで、テーブル毎のリカバリーの進行状況を確認可能 バックアップ/リストア/リカバリ テーブルの並列リカバリー
  43. 43. – 異なるデータベース名を持つクラスターに対し、テーブルレベルのレプリケーションが可能に バックアップ/リストア/リカバリ テーブルレプリケーション機能 – 前提条件 – 両クラスターにおいて、VerticaのLinux管理ユーザーが 同一 – 両クラスターにおいて、データベースがUP – 両クラスターのノード数が同一 – 両クラスターのVericaバージョンが同一 – 両クラスターにおいて、カタログ、データ、一時領域の ディレクトリが同一 – 実行コマンド例 – 構成ファイル例 $ vbr -t replicate -c configfile.ini [Misc] objects=s1, s2.t1 .... dest_verticaBinDir = /opt/vertica/bin [Database] .... dest_dbName = dest_dbUser = testuser dest_dbPort = 5433 dest_dbPromptForPassword = False [Passwords] .. dest_dbPassword = password [Mapping] source_node01 = targethost01: source_node02 = targethost02: source_node03 = targethost03:
  44. 44. Place 53 • WGS84のサポート • Vertica上の空間データをシェープファイルに抽出 • geometry型カラムデータサイズの算出
  45. 45. Vertica Place 地理空間分析パッケージ SELECT STV_Intersect(gid, geom USING PARAMETERS index=‘/dat/states.idx’) OVER() AS (call_gid, state_gid) FROM calls; チャレンジ 地理空間データオブジェクト (geometry / geography)の データ分析への活用 – メモリー常駐インデックスにより、空 間結合を最適化 – OGC標準で実装された地理空間 関数 – 3rd Partyアプリケーションとのシン プルな統合 HPE Vertica Place ソリューション 54
  46. 46. Place 新機能 以下の関数にて、 WGS84(※)をサ ポート – ST_Intersects – ST_Disjoint – ST_Within – ST_Contains – ST_Touches Vertica上の空間データをシェープファ イルに抽出 – STV_Export2Shapefile – STV_SetExportShapefileDirectory – STV_GetExportShapefileDirectory geometry型カラムデータサイズを算出 – STV_MemSize※アメリカで使用されている世界測地系の名称 Google map、Mapionなどが採用
  47. 47. 以下の関数がWGS84(※)をサポート Place WGS84のサポート 関数名 説明 ST_Intersects 2つのgeometry/geographyオブジェクトが1点で交わる/重なる場合にTRUEを返す関数 ST_Disjoint 2つのgeometryオブジェクトが1点で交わらない場合にTRUEを返す関数 ST_Within あるgeometry/geographyオブジェクトが別のgeometry/geographyオブジェクトの内部(境 界を含まない)にある場合にTRUEを返す関数 ※ST_Containsと引数の指定順が異なる ST_Contains あるgeometry/geographyオブジェクトが別のgeometry/geographyオブジェクトの内部(境 界を含む)にある場合にTRUEを返す関数 ※ST_Withinと引数の指定順が異なる ST_Touches 2つのgeometryオブジェクトが境界で重なる場合にTRUEを返す関数 ※アメリカで使用されている世界測地系の名称 Google map、Mapionなどが採用
  48. 48. Place WGS84のサポート WGS84:PointとPolygonのペアを指定することが可能 SELECT ST_Intersects (t.point, t.polygon USING PARAMETERS spheroid=true) FROM テーブル; 例: ST_Intersects
  49. 49. 新規関数「STV_Export2Shapefile」「STV_SetExportShapefileDirectory」「STV_GetExportShapefileDirectory」 Place Vertica上の空間データをシェープファイルに抽出 ■シェープファイルの抽出ディレクトリの設定 = > SELECT STV_SetExportShapefileDirectory(USING PARAMETERS path = '/home/dbadmin/geo'); STV_SetExportShapefileDirectory -------------------------------------------------------------- SUCCESS. Set shapefile export directory: [/home/dbadmin/geo] (1 row) ■シェープファイルの抽出ディレクトリの確認 => SELECT STV_GetExportShapefileDirectory(); STV_GetExportShapefileDirectory ------------------------------------------------- Shapefile export directory: [/home/dbadmin/geo] (1 row) ■抽出処理の実行 => SELECT STV_Export2Shapefile(* USING PARAMETERS shapefile = 'visualizations/city-data.shp', shape = 'Polygon') OVER() FROM spatial_data; Rows Exported | File Path ---------------+---------------------------------------------------------------- 185873 | v_geo-db_node0001: /home/dbadmin/geo/visualizations/city-data.shp (1 row)
  50. 50. geometry型のカラムデータサイズの値を確認し、最適値に調整することが可能 Place geometry型カラムデータサイズの算出(STV_MemSize) CREATE TABLE polygons_test(id int, geom geometry(1000000)); SELECT max(STV_MemSize(geom)) FROM polygons_test; max ----- 209 (1 row) ※上記結果より、データ型を最適な値に調整 CREATE TABLE polygons(id int, geom geometry(209));
  51. 51. Kafka連携 60 • Kafka 0.9 / Kafkaマルチクラスターのサポートと新規システムテーブル • ユーザー定義フィルター • スキーマ定義とメタデータを含むAvroファイルの取り込み
  52. 52. 拡張されたサポート – Apache Kafka 0.9(2016年4月時点最新版) – 複数のKafkaクラスターとの接続 新たなシステムテーブル「kafka_clusters」の追加 – Kafka_configスキーマ配下にて管理 – Kafkaクラスター名とブローカーの情報を格納 Kafka連携 Kafka 0.9 / Kafkaマルチクラスターのサポートと新規システムテーブル カラム名 データ型 説明 cluster VARCHAR Kafkaクラスター名 brokers VARCHAR Kafkaクラスターに関連するbrokerのリスト
  53. 53. Kafka連携 ユーザー定義フィルターにより、Kafkaメッセージフォーマットのカスタマイズが可能に Sensor Data Cloud Data Customer Data Social Data FILTER COPY kafka_sources.target_table SOURCE KafkaSource (stream='topic1|1|1,topic2|2|2', brokers='host1:9092,host2:9092', duration= INTERVAL'timeslice') FILTER KafkaInsertDelimiters(delimiter = 'n') PARSER MyCsvParser(recordTerminator = 'n'); 例: 受信したKafkaメッセージに区切り文字”n”を付加して取り込み ユーザー定義フィルターを指定可能 ・KafkaInsertDelimiters(区切り文字を付与) ・KafkaInsertLength(レコード長情報を付与)
  54. 54. – AvroフォーマットのKafkaメッセージ中にスキーマ定義およびメタデータを含む場合、with_metadataオプションを 有効化することでこれらの情報を解析してロードが可能 – with_metadataオプションは、デフォルトでは無効 Kafka連携 スキーマ定義とメタデータを含むAvroファイルの取り込みが可能に COPY table_name SOURCE KafkaSource(stream='topic_name|0|0', stop_on_eof=true,duration=interval '10 seconds') PARSER KafkaAvroParser(external_schema='{Schema definition}'); COPY table_name SOURCE KafkaSource(stream='topic_name|0|0', stop_on_eof=true,duration=interval '10 seconds') PARSER KafkaAvroParser(external_schema='{Schema definition}',with_metadata=true); Kafkaメッセージ中にデータ+スキーマ定義およびメタデータを含む場合のCOPY Kafkaメッセージ中にデータのみを含む場合のCOPY
  55. 55. Thank you Contact information 64

×