当前位置: 首页 > 工具软件 > Logica > 使用案例 >

Logica实战与剖析(1)

唐默
2023-12-01

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

 类似资料: