Logica是Datalog家族的一种语言,可以编译成标准sql。Logica的大部分语法都遵循Yedalog,这是Google早期开发的一种语言。Logica的创建是为了同时享受简洁清晰的逻辑编程和基于SQL的系统(如BigQuery)的全部功能。

Logica在语义上等同于StandardSQL。它很容易编写,最重要的是读取用Logica编写的中型和大型查询。这些查询可以编译成StandardSQL并在BigQuery上运行。

Logica是为工程师、数据科学家和其他希望在编写查询和在BigQuery上运行的管道时使用逻辑编程语法的专家设计的。

Logica编译为SQL,并通过逻辑编程语法方便地访问GoogleBigQuery引擎的强大功能。这很有用,因为BigQuery比最先进的本地逻辑编程引擎强大得多。

我们鼓励您尝试Logica,尤其是在

您已经在使用逻辑编程,并且需要更多的计算能力,或者

您使用SQL,但对其可读性感到不满意,或者

你想学习逻辑编程并将其应用于大数据处理。

在未来,我们计划支持更多的SQL方言和引擎。

在C、Python、C++、java等程序中,一个基本的程序块是函数。

在SQL中,查询中构造一个公共块。

在逻辑学中,基本的构造块是谓词predicate。
谓词是包含变量的语句。

谓词是一个非常普遍的概念。函数和查询(以及表)可以看作是特殊类型的谓词。

安装

# Install.
python3 -m pip install logica
# Run:
# To see usage message.
python3 -m logica
# To print SQL for HelloWorld program.
python3 -m logica - print Greet <<<'Greet(greeting: "Hello world!")'

也可如下方法

git clone https://github.com/evgskv/logica
cd logica
./logica - print Greet <<<'Greet(greeting: "Hello world!")'

要在BigQuery上运行Logica程序,您需要一个Google云项目。一旦您有了一个项目,您就可以在CoLab中运行Logica程序,提供您的项目id。
要在本地运行Logica,需要Python3。
要从命令行启动Logica谓词执行,您需要bq,BigQuery命令行工具。为此,您需要安装googlecloudsdk。

Cloud SDK 要求安装 Python;支持的版本是 Python 3(首选,3.5 到 3.8)和 Python 2(2.7.9 或更高版本)。

python --version
如需详细了解如何选择和配置 Python 解释器,请参阅 gcloud topic startup。
下载以下软件包之一:
注意:如需确定您的操作系统版本,请通过命令行运行 getconf LONG_BIT。
平台 软件包 大小 SHA256 校验和
Linux 64 位
(x86_64)

google-cloud-sdk-334.0.0-linux-x86_64.tar.gz 84.4 MB 8ba026255d73e8b11b8a9b6a4e7f72cbe8b08952df2739d78d6d003666a39d3d
Linux 32 位
(x86)

google-cloud-sdk-334.0.0-linux-x86.tar.gz 81.7 MB bbf1f8b36f2606b3c45d105fe7078810a09e24a1171418530e337226d9547fdd
或者,如需通过命令行下载 Linux 64 位归档文件,请运行以下命令:
curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-334.0.0-linux-x86_64.tar.gz
对于 32 位归档文件,请运行以下命令:
curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-334.0.0-linux-x86.tar.gz
将文件内容提取到文件系统上的任意位置(最好是主目录)。如果您想替换现有安装,请移除现有的 google-cloud-sdk 目录并将归档解压缩到同一位置。
可选。使用安装脚本将 Cloud SDK 工具添加至您的 PATH。您还可以选择为您的 shell 启用命令补全功能以及选择开启使用情况统计信息收集功能。
使用以下命令运行脚本(从您在上一步中提取的文件夹的根目录运行):

./google-cloud-sdk/install.sh
也可以通过提供偏好设置作为标志来以非交互方式(例如,使用脚本)完成此操作。相关说明,请参阅:

./google-cloud-sdk/install.sh --help
打开新终端,以使更改生效。
运行 gcloud init 来初始化 SDK:

./google-cloud-sdk/bin/gcloud init
可选。使用组件管理器安装其他组件。

逻辑编程是一种声明式编程范式,其中程序被编写为一组逻辑语句。

逻辑编程是60年代后期在学术界发展起来的,Prolog和Datalog是逻辑编程语言中最突出的例子。Logica是Datalog家族的一种语言。

数据日志和关系数据库的出发点是相同的:将数据视为关系,将数据操作视为对这些关系的一系列操作。但是Datalog和SQL在描述这些操作的方式上有所不同。Datalog受一阶命题逻辑的数学语法启发,SQL遵循自然语言的语法。

SQL以自然语言为基础,使人们能够访问数据库,而无需接受计算机编程或数学方面的正式培训。当您想要表达的逻辑非常重要时,这种便利性可能会变得非常昂贵。有许多与简单逻辑程序相对应的难读SQL查询示例。

Logica将逻辑程序编译成SQL表达式,因此可以在最先进的SQL引擎BigQuery上执行。

在数据库理论家中,Datalog和SQL是等价的。事实上,从数据日志到SQL再到SQL的转换通常很简单。但也有一些细微的差别,例如如何处理析取和否定。在Logica中,我们试图做出一些选择,尽可能容易地理解最终的SQL结构,从而使用户能够编写高效执行的程序。

logica learn1.l run Prime

Logica实战与剖析(1)相关推荐

  1. html5简介的文本框,HTML5实战与剖析之表单——文本框脚本

    文本框类型 在编写表单相关的东西的时候,通常有两个标签标示文本框:一种是单行文本框input标签,另一种是多行文本框textarea标签.这两种标签比较相似,但是他们也有区别. 如果一定要用input ...

  2. 知识图谱开发实战案例剖析_我从剖析Web开发人员路线图中学到的知识

    知识图谱开发实战案例剖析 by Nicole Archambault 妮可·阿坎巴特(Nicole Archambault) 我从剖析Web开发人员路线图中学到的知识 (What I learned ...

  3. sql replace替换多个字符_牛客网数据库SQL实战详细剖析(4150)

    文章来源:大数据肌肉猿 作者:无精疯 这是一个系列文章,总共61题,分6期,有答案以及解题思路,并附上解题的一个思考过程.具体题目可参考牛客网的SQL实战模块:https://www.nowcoder ...

  4. sql not exists用法_牛客网数据库SQL实战详细剖析(5160)(更新完结)

    文章来源:大数据肌肉猿 作者:无精疯 这是一个系列文章,总共61题,分6期,有答案以及解题思路,并附上解题的一个思考过程. 具体题目可参考牛客网的SQL实战模块: https://www.nowcod ...

  5. 智能对话机器人开发实战案例剖析(2)

    一.前言 本文是<智能对话机器人开发实战案例剖析>系列的第2篇:智能对话机器人分类标准,旨在对智能对话系统的进行一个系统性的介绍.相关内容已同步录制成视频课程,发布在网易云课堂. 二.正文 ...

  6. 面试造飞机这么能耐,对着调优实战更不能怂啊!

    Java性能调优都是老生常谈的问题,特别当"糙快猛"的开发模式大行其道时,随着系统访问量的增加.代码的臃肿,各种性能问题便会层出不穷. 比如,下面这些典型的性能问题,你肯定或多或少 ...

  7. 程序员搞事!动手实战优化自己公司线上系统JVM,结果。。。

    Java性能调优都是老生常谈的问题,特别当"糙快猛"的开发模式大行其道时,随着系统访问量的增加.代码的臃肿,各种性能问题便会层出不穷. 比如,下面这些典型的性能问题,你肯定或多或少 ...

  8. 淘宝美工 电商设计PS零基础到实战课程学习目录-来自于三人行慕课

    原文链接:https://www.3mooc.com/front/articleinfo/265 文后附课程链接 课程目录: 第1章 PS 0基础入门 梦想的开始 课时1 PS入门学习 界面了解与工作 ...

  9. 整理了我开始分享学习笔记到现在超过250篇优质文章,涵盖数据分析、爬虫、机器学习等方面,别再说不知道该从哪开始,实战哪里找了...

    大家好,我是老表,Python终身学习者,也是开源学习组织Datawhale终身成员,有近两年的Python编程学习经验,热爱爬虫与数据分析,目前是一名数据分析师(实习). 从18年5月起我将自己从0 ...

最新文章

  1. 卷积神经网络(CNN)张量(图像)的尺寸和参数计算(深度学习)
  2. 宣传推广费用_企业如何做好网络推广,提高网络推广的转化率?
  3. asp.net发布网站(转)
  4. ubuntu编译安装php5 mysql nginx
  5. cycle函数python_Python执行函数的周期实现
  6. 报表学习总结(一)——ASP.NET 水晶报表(Crystal Reports)的简单使用
  7. 【学习笔记】第二章——进程的定义、组成、组织方式、特征、状态 转换
  8. Git自由之章 - 本地仓库的基本操作
  9. ObjC学习9-Foundation框架之操作文件
  10. html5 2.5d,修仙三国:首款HTML5三国背景2.5D角色扮演页游
  11. 【UVA524】Prime Ring Problem(素数环--递归回溯+全局变量的一个小坑点---水题)
  12. 西安80北京54,2000和WGS84互转C#程序
  13. Win7系统能用一键装机的方式安装win10吗?
  14. 计算机网络故障检测,计算机网络故障处理
  15. 【线性分类器】(二)“深度学习”的鼻祖——感知器
  16. scrum敏捷开发方法论
  17. 【对讲机的那点事】带你玩转摩托罗拉GP328对讲机读写频
  18. 多线程——生产者消费者模型
  19. led亮度鉴别测试软件,测试LED颜色与亮度——FeasaLED测试仪
  20. Red Panda DEV-C++6.7.5

热门文章

  1. android学习笔记53——自动朗读TTS
  2. MFC之键盘和键盘消息处理
  3. C#:如何去掉groupbox的边框线
  4. [转]C# winForm 自定义鼠标样式的两种方法
  5. 刷新后控制TAB键到下一个控件
  6. 雷林鹏分享:jQuery EasyUI 数据网格 - 条件设置行背景颜色
  7. Misunderstood-Missing-逆向DP
  8. 文件上传api——MultipartFile
  9. OSI七层模型加协议
  10. ubuntu12.04安装KDevelop