Upload
Download free for 30 days
Login
Submit Search
Datalogからsqlへの トランスレータを書いた話
0 likes
2,391 views
Yuki Takeichi
2015.10.08に開催された「理論から学ぶデータベース実践入門Night」でLTした際のスライド
Software
Read more
1 of 11
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
More Related Content
PPT
Datomic&datalog紹介
あしたのオープンソース研究所
PDF
AutoEncoderで特徴抽出
Kai Sasaki
PPTX
Apache Spark チュートリアル
K Yamaguchi
PDF
20021127 ku-librarians勉強会 #38 : Where can I go? : OpenURLによる状況判断型リンク(SFXを中心として)
kulibrarians
PPTX
20080201
小野 修司
PDF
20150520 lt-neo4j勉強会-neofj fdw
Toshi Harada
PPTX
[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...
Insight Technology, Inc.
PDF
Pgunconf neo4j fdw
Toshi Harada
Datomic&datalog紹介
あしたのオープンソース研究所
AutoEncoderで特徴抽出
Kai Sasaki
Apache Spark チュートリアル
K Yamaguchi
20021127 ku-librarians勉強会 #38 : Where can I go? : OpenURLによる状況判断型リンク(SFXを中心として)
kulibrarians
20080201
小野 修司
20150520 lt-neo4j勉強会-neofj fdw
Toshi Harada
[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...
Insight Technology, Inc.
Pgunconf neo4j fdw
Toshi Harada
What's hot
(20)
PPTX
データベース入門
拓 小林
PDF
GMO プライベート DMP で ビッグデータ解析をするために アプリクラウドで Apache Spark の検証をしてみた
Tetsuo Yamabe
PPTX
20071204
小野 修司
PDF
Core Data の概要と NSIncrementalStore
Tetsuya Kaneuchi
PDF
chapter6
ymk0424
PDF
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Treasure Data, Inc.
PPTX
20161127 doradora09 japanr2016_lt
Nobuaki Oshiro
PDF
トピックモデルの話
kogecoo
PDF
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
Yu Ishikawa
PDF
Learning spaerk chapter03
Akimitsu Takagi
PPTX
情報の構造化@Linked Open Data連続講座(2014.6.2)
Ikki Ohmukai
PDF
ナレッジグラフ/LOD利用技術の入門(後編)
KnowledgeGraph
PDF
LODを始めるにあたって「最初に試すとよい」ツールの紹介
Kouji Kozaki
PDF
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Tomoharu ASAMI
PPTX
データサイエンティスト必見!M-1グランプリ
Satoshi Kitajima
PDF
20170312 r言語環境構築&dplyr ハンズオン
Nobuaki Oshiro
PPTX
巨大なサービスと膨大なデータを支えるプラットフォーム
Tetsutaro Watanabe
PPTX
ポータル研修 201208 天野_発表用
Eriko Amano
PPTX
LINQ の概要とかもろもろ
ShinichiAoyagi
PDF
GeneratingWikipedia_ICLR18_論文紹介
Masayoshi Kondo
データベース入門
拓 小林
GMO プライベート DMP で ビッグデータ解析をするために アプリクラウドで Apache Spark の検証をしてみた
Tetsuo Yamabe
20071204
小野 修司
Core Data の概要と NSIncrementalStore
Tetsuya Kaneuchi
chapter6
ymk0424
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Treasure Data, Inc.
20161127 doradora09 japanr2016_lt
Nobuaki Oshiro
トピックモデルの話
kogecoo
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
Yu Ishikawa
Learning spaerk chapter03
Akimitsu Takagi
情報の構造化@Linked Open Data連続講座(2014.6.2)
Ikki Ohmukai
ナレッジグラフ/LOD利用技術の入門(後編)
KnowledgeGraph
LODを始めるにあたって「最初に試すとよい」ツールの紹介
Kouji Kozaki
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Tomoharu ASAMI
データサイエンティスト必見!M-1グランプリ
Satoshi Kitajima
20170312 r言語環境構築&dplyr ハンズオン
Nobuaki Oshiro
巨大なサービスと膨大なデータを支えるプラットフォーム
Tetsutaro Watanabe
ポータル研修 201208 天野_発表用
Eriko Amano
LINQ の概要とかもろもろ
ShinichiAoyagi
GeneratingWikipedia_ICLR18_論文紹介
Masayoshi Kondo
Ad
Viewers also liked
(20)
PPTX
ならば(その弐)
Tomoaki Hiramoto
PDF
NULLとの戦い RDBMS実装編
Meiji Kimura
ODP
集合演算を真っ向から否定するアレの話
Kouhei Aoyagi
PPTX
理論から学ぶデータベース実践入門Night(mvccでちょっとハマった話)
Hironori Miura
PDF
なぜ、いまリレーショナルモデルなのか
Mikiya Okuno
PDF
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
Mikiya Okuno
PPTX
Writing Yarn Applications Hadoop Summit 2012
Hortonworks
PDF
リレーショナルな正しいデータベース設計
Mikiya Okuno
PDF
Database smells
Mikiya Okuno
PDF
Cloudera Manager4.0とNameNode-HAセミナー資料
Cloudera Japan
PPTX
Future of HCatalog - Hadoop Summit 2012
Hortonworks
PDF
20120830 DBリファクタリング読書会第三回
都元ダイスケ Miyamoto
PDF
【17-E-3】 オンライン機械学習で実現する大規模データ処理
Developers Summit
PDF
並列データベースシステムの概念と原理
Makoto Yui
PDF
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
Satoshi Yamada
ODP
Data analytics with hadoop hive on multiple data centers
Hirotaka Niisato
PDF
Lars George HBase Seminar with O'REILLY Oct.12 2012
Cloudera Japan
PDF
あなたの知らないPostgreSQL監視の世界
Yoshinori Nakanishi
KEY
Hadoop Summit 2012 - Hadoop and Vertica: The Data Analytics Platform at Twitter
Bill Graham
PDF
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
kwatch
ならば(その弐)
Tomoaki Hiramoto
NULLとの戦い RDBMS実装編
Meiji Kimura
集合演算を真っ向から否定するアレの話
Kouhei Aoyagi
理論から学ぶデータベース実践入門Night(mvccでちょっとハマった話)
Hironori Miura
なぜ、いまリレーショナルモデルなのか
Mikiya Okuno
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
Mikiya Okuno
Writing Yarn Applications Hadoop Summit 2012
Hortonworks
リレーショナルな正しいデータベース設計
Mikiya Okuno
Database smells
Mikiya Okuno
Cloudera Manager4.0とNameNode-HAセミナー資料
Cloudera Japan
Future of HCatalog - Hadoop Summit 2012
Hortonworks
20120830 DBリファクタリング読書会第三回
都元ダイスケ Miyamoto
【17-E-3】 オンライン機械学習で実現する大規模データ処理
Developers Summit
並列データベースシステムの概念と原理
Makoto Yui
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
Satoshi Yamada
Data analytics with hadoop hive on multiple data centers
Hirotaka Niisato
Lars George HBase Seminar with O'REILLY Oct.12 2012
Cloudera Japan
あなたの知らないPostgreSQL監視の世界
Yoshinori Nakanishi
Hadoop Summit 2012 - Hadoop and Vertica: The Data Analytics Platform at Twitter
Bill Graham
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
kwatch
Ad
Datalogからsqlへの トランスレータを書いた話
1.
DatalogからSQLへの トランスレータを書いた話 理論から学ぶデータベース実践入門Night LT 2015.10.8 @tacke_jp
2.
$ whoami • 武市融紀
( @tacke_jp ) • 株式会社ノハナ • 「家族の問題を解決する」がミッションのmixi発社内ベ ンチャー • エンジニア • サーバーサイド/ネイティブアプリからデータ解析までや る器用貧乏不器用エンジニア
3.
今日話したいこと • 宣言型クエリ言語Datalogの紹介 • Datalogで記述したクエリをSQLに変換するデモ
4.
Datalogとは? • 宣言的論理型プログラミング言語 • PrologっぽいSyntaxをもつ •
3つの構文を持つ • ファクト: リレーションを外延的に定義 • ルール: 推論規則 (あるファクトから別のファクトを導く) • クエリ: ファクトを真にするような変数を見つける
5.
ファクト father(tara, masuo). mother(tara, sazae). •
リレーションを定義する構文 • SQLではINSERTに相当 father(sazae, namihei). mother(sazae, fune). リレーション名 定数項(先頭が小文字)
6.
ルール parent(X, Y) :-
father(X, Y). • 推論規則を定義 • SQLにおけるViewに相当 parent(X, Y) :- mother(X, Y). grandparent(X, Y) :- parent(X, P), parent(P, Y). ancestor(X, Y) :- parent(X, Y). ancestor(X, Y) :- parent(X, P), ancestor(P, Y). 宣言部 本体 ←複数行ならべると選言(OR) カンマでつなぐと連言(AND) リレーションをまたいだ変数はJOINに相当 減少性があれば再帰的定義も可能
7.
クエリ ? :- parent(X,
Y). ? :- grandparent(X, Y). ? :- ancestor(tara, Y). 親子関係を列挙せよ 親子関係を列挙せよ タラちゃんの祖先を列挙せよ • 右に現れる変数を満たす値 を列挙する
8.
モチベーション • 複雑なロジックをSQLで記述しようとするとすぐ長くなる • 「BigQuery
(行数)」 • SQLを書いていると毎回同じようなロジックを記述しているよ うな感じがする • Viewでもいいけど乱立したら管理が大変そう… • => リレーショナルDBへのクエリをSQL以外で書きたい!
9.
というわけで • 書きました! • https://github.com/yuki-takeichi/datalog-sql
10.
demo
11.
まとめ • Datalogを使うことで複雑なJOINを行うクエリや再 帰クエリを部品化することができた • しかも記述が簡素になった •
変数って便利 • RDBのSQL以外のクエリ言語の可能性を考えてみる のも面白いかも
Download