Submit Search
Upload
Datalogからsqlへの トランスレータを書いた話
•
0 likes
•
2,359 views
Yuki Takeichi
Follow
2015.10.08に開催された「理論から学ぶデータベース実践入門Night」でLTした際のスライド
Read less
Read more
Software
Report
Share
Report
Share
1 of 11
Download now
Download to read offline
Recommended
Datomic&datalog紹介
Datomic&datalog紹介
あしたのオープンソース研究所
AutoEncoderで特徴抽出
AutoEncoderで特徴抽出
Kai Sasaki
Apache Spark チュートリアル
Apache Spark チュートリアル
K Yamaguchi
20021127 ku-librarians勉強会 #38 : Where can I go? : OpenURLによる状況判断型リンク(SFXを中心として)
20021127 ku-librarians勉強会 #38 : Where can I go? : OpenURLによる状況判断型リンク(SFXを中心として)
kulibrarians
20080201
20080201
小野 修司
20150520 lt-neo4j勉強会-neofj fdw
20150520 lt-neo4j勉強会-neofj fdw
Toshi Harada
[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...
[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...
Insight Technology, Inc.
Pgunconf neo4j fdw
Pgunconf neo4j fdw
Toshi Harada
Recommended
Datomic&datalog紹介
Datomic&datalog紹介
あしたのオープンソース研究所
AutoEncoderで特徴抽出
AutoEncoderで特徴抽出
Kai Sasaki
Apache Spark チュートリアル
Apache Spark チュートリアル
K Yamaguchi
20021127 ku-librarians勉強会 #38 : Where can I go? : OpenURLによる状況判断型リンク(SFXを中心として)
20021127 ku-librarians勉強会 #38 : Where can I go? : OpenURLによる状況判断型リンク(SFXを中心として)
kulibrarians
20080201
20080201
小野 修司
20150520 lt-neo4j勉強会-neofj fdw
20150520 lt-neo4j勉強会-neofj fdw
Toshi Harada
[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...
[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...
Insight Technology, Inc.
Pgunconf neo4j fdw
Pgunconf neo4j fdw
Toshi Harada
データベース入門
データベース入門
拓 小林
GMO プライベート DMP で ビッグデータ解析をするために アプリクラウドで Apache Spark の検証をしてみた
GMO プライベート DMP で ビッグデータ解析をするために アプリクラウドで Apache Spark の検証をしてみた
Tetsuo Yamabe
20071204
20071204
小野 修司
Core Data の概要と NSIncrementalStore
Core Data の概要と NSIncrementalStore
Tetsuya Kaneuchi
chapter6
chapter6
ymk0424
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Treasure Data, Inc.
20161127 doradora09 japanr2016_lt
20161127 doradora09 japanr2016_lt
Nobuaki Oshiro
トピックモデルの話
トピックモデルの話
kogecoo
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
Yu Ishikawa
Learning spaerk chapter03
Learning spaerk chapter03
Akimitsu Takagi
情報の構造化@Linked Open Data連続講座(2014.6.2)
情報の構造化@Linked Open Data連続講座(2014.6.2)
Ikki Ohmukai
ナレッジグラフ/LOD利用技術の入門(後編)
ナレッジグラフ/LOD利用技術の入門(後編)
KnowledgeGraph
LODを始めるにあたって「最初に試すとよい」ツールの紹介
LODを始めるにあたって「最初に試すとよい」ツールの紹介
Kouji Kozaki
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Tomoharu ASAMI
データサイエンティスト必見!M-1グランプリ
データサイエンティスト必見!M-1グランプリ
Satoshi Kitajima
20170312 r言語環境構築&dplyr ハンズオン
20170312 r言語環境構築&dplyr ハンズオン
Nobuaki Oshiro
巨大なサービスと膨大なデータを支えるプラットフォーム
巨大なサービスと膨大なデータを支えるプラットフォーム
Tetsutaro Watanabe
ポータル研修 201208 天野_発表用
ポータル研修 201208 天野_発表用
Eriko Amano
LINQ の概要とかもろもろ
LINQ の概要とかもろもろ
ShinichiAoyagi
GeneratingWikipedia_ICLR18_論文紹介
GeneratingWikipedia_ICLR18_論文紹介
Masayoshi Kondo
ならば(その弐)
ならば(その弐)
Tomoaki Hiramoto
NULLとの戦い RDBMS実装編
NULLとの戦い RDBMS実装編
Meiji Kimura
More Related Content
What's hot
データベース入門
データベース入門
拓 小林
GMO プライベート DMP で ビッグデータ解析をするために アプリクラウドで Apache Spark の検証をしてみた
GMO プライベート DMP で ビッグデータ解析をするために アプリクラウドで Apache Spark の検証をしてみた
Tetsuo Yamabe
20071204
20071204
小野 修司
Core Data の概要と NSIncrementalStore
Core Data の概要と NSIncrementalStore
Tetsuya Kaneuchi
chapter6
chapter6
ymk0424
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Treasure Data, Inc.
20161127 doradora09 japanr2016_lt
20161127 doradora09 japanr2016_lt
Nobuaki Oshiro
トピックモデルの話
トピックモデルの話
kogecoo
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
Yu Ishikawa
Learning spaerk chapter03
Learning spaerk chapter03
Akimitsu Takagi
情報の構造化@Linked Open Data連続講座(2014.6.2)
情報の構造化@Linked Open Data連続講座(2014.6.2)
Ikki Ohmukai
ナレッジグラフ/LOD利用技術の入門(後編)
ナレッジグラフ/LOD利用技術の入門(後編)
KnowledgeGraph
LODを始めるにあたって「最初に試すとよい」ツールの紹介
LODを始めるにあたって「最初に試すとよい」ツールの紹介
Kouji Kozaki
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Tomoharu ASAMI
データサイエンティスト必見!M-1グランプリ
データサイエンティスト必見!M-1グランプリ
Satoshi Kitajima
20170312 r言語環境構築&dplyr ハンズオン
20170312 r言語環境構築&dplyr ハンズオン
Nobuaki Oshiro
巨大なサービスと膨大なデータを支えるプラットフォーム
巨大なサービスと膨大なデータを支えるプラットフォーム
Tetsutaro Watanabe
ポータル研修 201208 天野_発表用
ポータル研修 201208 天野_発表用
Eriko Amano
LINQ の概要とかもろもろ
LINQ の概要とかもろもろ
ShinichiAoyagi
GeneratingWikipedia_ICLR18_論文紹介
GeneratingWikipedia_ICLR18_論文紹介
Masayoshi Kondo
What's hot
(20)
データベース入門
データベース入門
GMO プライベート DMP で ビッグデータ解析をするために アプリクラウドで Apache Spark の検証をしてみた
GMO プライベート DMP で ビッグデータ解析をするために アプリクラウドで Apache Spark の検証をしてみた
20071204
20071204
Core Data の概要と NSIncrementalStore
Core Data の概要と NSIncrementalStore
chapter6
chapter6
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
20161127 doradora09 japanr2016_lt
20161127 doradora09 japanr2016_lt
トピックモデルの話
トピックモデルの話
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
Learning spaerk chapter03
Learning spaerk chapter03
情報の構造化@Linked Open Data連続講座(2014.6.2)
情報の構造化@Linked Open Data連続講座(2014.6.2)
ナレッジグラフ/LOD利用技術の入門(後編)
ナレッジグラフ/LOD利用技術の入門(後編)
LODを始めるにあたって「最初に試すとよい」ツールの紹介
LODを始めるにあたって「最初に試すとよい」ツールの紹介
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
データサイエンティスト必見!M-1グランプリ
データサイエンティスト必見!M-1グランプリ
20170312 r言語環境構築&dplyr ハンズオン
20170312 r言語環境構築&dplyr ハンズオン
巨大なサービスと膨大なデータを支えるプラットフォーム
巨大なサービスと膨大なデータを支えるプラットフォーム
ポータル研修 201208 天野_発表用
ポータル研修 201208 天野_発表用
LINQ の概要とかもろもろ
LINQ の概要とかもろもろ
GeneratingWikipedia_ICLR18_論文紹介
GeneratingWikipedia_ICLR18_論文紹介
Viewers also liked
ならば(その弐)
ならば(その弐)
Tomoaki Hiramoto
NULLとの戦い RDBMS実装編
NULLとの戦い RDBMS実装編
Meiji Kimura
集合演算を真っ向から否定するアレの話
集合演算を真っ向から否定するアレの話
Kouhei Aoyagi
理論から学ぶデータベース実践入門Night(mvccでちょっとハマった話)
理論から学ぶデータベース実践入門Night(mvccでちょっとハマった話)
Hironori Miura
なぜ、いまリレーショナルモデルなのか
なぜ、いまリレーショナルモデルなのか
Mikiya Okuno
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
Mikiya Okuno
Writing Yarn Applications Hadoop Summit 2012
Writing Yarn Applications Hadoop Summit 2012
Hortonworks
リレーショナルな正しいデータベース設計
リレーショナルな正しいデータベース設計
Mikiya Okuno
Database smells
Database smells
Mikiya Okuno
Cloudera Manager4.0とNameNode-HAセミナー資料
Cloudera Manager4.0とNameNode-HAセミナー資料
Cloudera Japan
Future of HCatalog - Hadoop Summit 2012
Future of HCatalog - Hadoop Summit 2012
Hortonworks
20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回
都元ダイスケ Miyamoto
【17-E-3】 オンライン機械学習で実現する大規模データ処理
【17-E-3】 オンライン機械学習で実現する大規模データ処理
Developers Summit
並列データベースシステムの概念と原理
並列データベースシステムの概念と原理
Makoto Yui
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
Satoshi Yamada
Data analytics with hadoop hive on multiple data centers
Data analytics with hadoop hive on multiple data centers
Hirotaka Niisato
Lars George HBase Seminar with O'REILLY Oct.12 2012
Lars George HBase Seminar with O'REILLY Oct.12 2012
Cloudera Japan
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
Yoshinori Nakanishi
Hadoop Summit 2012 - Hadoop and Vertica: The Data Analytics Platform at Twitter
Hadoop Summit 2012 - Hadoop and Vertica: The Data Analytics Platform at Twitter
Bill Graham
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
kwatch
Viewers also liked
(20)
ならば(その弐)
ならば(その弐)
NULLとの戦い RDBMS実装編
NULLとの戦い RDBMS実装編
集合演算を真っ向から否定するアレの話
集合演算を真っ向から否定するアレの話
理論から学ぶデータベース実践入門Night(mvccでちょっとハマった話)
理論から学ぶデータベース実践入門Night(mvccでちょっとハマった話)
なぜ、いまリレーショナルモデルなのか
なぜ、いまリレーショナルモデルなのか
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
Writing Yarn Applications Hadoop Summit 2012
Writing Yarn Applications Hadoop Summit 2012
リレーショナルな正しいデータベース設計
リレーショナルな正しいデータベース設計
Database smells
Database smells
Cloudera Manager4.0とNameNode-HAセミナー資料
Cloudera Manager4.0とNameNode-HAセミナー資料
Future of HCatalog - Hadoop Summit 2012
Future of HCatalog - Hadoop Summit 2012
20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回
【17-E-3】 オンライン機械学習で実現する大規模データ処理
【17-E-3】 オンライン機械学習で実現する大規模データ処理
並列データベースシステムの概念と原理
並列データベースシステムの概念と原理
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
Data analytics with hadoop hive on multiple data centers
Data analytics with hadoop hive on multiple data centers
Lars George HBase Seminar with O'REILLY Oct.12 2012
Lars George HBase Seminar with O'REILLY Oct.12 2012
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
Hadoop Summit 2012 - Hadoop and Vertica: The Data Analytics Platform at Twitter
Hadoop Summit 2012 - Hadoop and Vertica: The Data Analytics Platform at Twitter
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
Similar to Datalogからsqlへの トランスレータを書いた話
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~
griddb
メディアコンテンツ向け記事検索DBとして使うElasticsearch
メディアコンテンツ向け記事検索DBとして使うElasticsearch
Yasuhiro Murata
2015-12-16 某S社、出直しDDDってるってよ
2015-12-16 某S社、出直しDDDってるってよ
kumake
Firestoreを勉強してみた
Firestoreを勉強してみた
ishikawa akira
企業等に蓄積されたデータを分析するための処理機能の提案
企業等に蓄積されたデータを分析するための処理機能の提案
Toshiyuki Shimono
Azure Data Explorer
Azure Data Explorer
Daisuke Masubuchi
Google Cloud Next '18 Recap/報告会 機械学習関連
Google Cloud Next '18 Recap/報告会 機械学習関連
Tetsutaro Watanabe
SQLアンチパターン メンター用資料
SQLアンチパターン メンター用資料
Hironori Miura
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
PPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう
PPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう
Daisuke Masubuchi
re:Growth 2016 in TOKYO発表「AWS Glueの紹介」
re:Growth 2016 in TOKYO発表「AWS Glueの紹介」
Yosuke Katsuki
MySQL最新情報
MySQL最新情報
yoyamasaki
10分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 0905
Nobuaki Oshiro
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
泰 増田
20180630 data transformationusinglogicflow
20180630 data transformationusinglogicflow
Tomoyuki Obi
RESTful Web API Design
RESTful Web API Design
Akinari Tsugo
PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020
PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020
Daisuke Masubuchi
DB思い出話いろいろ(仮)
DB思い出話いろいろ(仮)
Takahiro Kitayama
GraphQLはどんな時に使うか
GraphQLはどんな時に使うか
Yutaka Tachibana
ジェネリクスの概論とか
ジェネリクスの概論とか
nagise
Similar to Datalogからsqlへの トランスレータを書いた話
(20)
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~
メディアコンテンツ向け記事検索DBとして使うElasticsearch
メディアコンテンツ向け記事検索DBとして使うElasticsearch
2015-12-16 某S社、出直しDDDってるってよ
2015-12-16 某S社、出直しDDDってるってよ
Firestoreを勉強してみた
Firestoreを勉強してみた
企業等に蓄積されたデータを分析するための処理機能の提案
企業等に蓄積されたデータを分析するための処理機能の提案
Azure Data Explorer
Azure Data Explorer
Google Cloud Next '18 Recap/報告会 機械学習関連
Google Cloud Next '18 Recap/報告会 機械学習関連
SQLアンチパターン メンター用資料
SQLアンチパターン メンター用資料
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
PPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう
PPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう
re:Growth 2016 in TOKYO発表「AWS Glueの紹介」
re:Growth 2016 in TOKYO発表「AWS Glueの紹介」
MySQL最新情報
MySQL最新情報
10分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 0905
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
20180630 data transformationusinglogicflow
20180630 data transformationusinglogicflow
RESTful Web API Design
RESTful Web API Design
PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020
PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020
DB思い出話いろいろ(仮)
DB思い出話いろいろ(仮)
GraphQLはどんな時に使うか
GraphQLはどんな時に使うか
ジェネリクスの概論とか
ジェネリクスの概論とか
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 now