如何从vba连接到apachespark/hadoop

9udxz4iz  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(539)

我熟悉sql(尤其是postgres)和vba,但是在apachespark方面,我是一个完全的新手,但是它运行和返回查询结果的速度似乎比使用sql快得多?
在我的日常工作中,我把excelvba和postgresql通过 OLEDB (其他ppl使用) ODBC 所以每当我需要从 DB ,我可以通过设置一个连接并在vba中编写一个sql字符串,然后将输出转储到所需的表和单元格中来轻松地实现这一点。但缺点是速度,当我需要运行复杂的程序时,我的数据越来越大 SQL queries 对于复杂的计算或关系,需要很长时间才能得到结果。
所以除了升级我们的服务器 DB ,我听说了 Spark/Hadoop 加快这项任务的解决办法是什么?
通常,当我需要进行vba postgres交互时,我会执行以下操作:

Public Sub refresh_cf()
    Dim dataConn As New ADODB.Connection
    Dim strSQL As String
    Dim strCON As String
    Dim strCmd As New ADODB.Command
    Dim loadTable As QueryTable

    strCON = "Server=server IP;" & _
             "DSN=PostgreSQL35W;" & _
             "UID=USERNAME;" & _
             "PWD=PASSWORD;" & _
             "Database=DBNAME;" & _
             "Port=5432;" & _
             "CommandTimeout=12"
    dataConn.ConnectionString = strCON
    dataConn.Open

    strSQL = "SELECT * FROM TABLE WHERE...."
    strCmd.ActiveConnection = dataConn
    strCmd.CommandType = adCmdText
    strCmd.CommandText = strSQL
    strCmd.CommandTimeout = 0

    Set loadTable = Sheet2.QueryTables.Add(Connection:=strCmd.Execute, 
    Destination:=Sheet2.Range("A4"))
    With loadTable
        .BackgroundQuery = False
        .AdjustColumnWidth = False
        .refresh
    End With       
End Sub

我想知道我们是否可以实现同样的连接apachespark或hadoop并通过这种方式返回查询结果??
假设我们正在处理的每个数据库都相当庞大,有数十亿行(每行有无数个单元格),如果我在这个数据库中执行一些复杂的关系计算,目前我们服务器上的postgres可能需要数小时甚至数天才能完成任务(即使返回的结果可能没有那么大,即不超过每张excel表格160万行的限制),如果可能的话,是否值得通过vba使用hadoop或spark?
我知道我们可以在 Python 当然,类似于:
python

from pyspark.sql import HiveContext, Row

# or

from pyspark.sql import SQLContext, Row
sc = SparkContext(...)
hiveCtx = HiveContext(sc)

# Then we can run query

hiveCtx.sql("""SELECT * FROM TABLE WHERE....""")

此外,我还找到了一个将odbc连接引入hadoop的链接,但是如果您这样做的话,是否有人可以分享您的方法,并提供一些基本的示例代码来阐明这个过程?谢谢。

qncylg1j

qncylg1j1#

我的个人笔记本电脑上没有安装hadoop,所以我无法测试这个过程,但我认为它应该是这样的。



你可以在这里看到所有的细节。
https://docs.microsoft.com/en-us/azure/hdinsight/hadoop/apache-hadoop-connect-excel-hive-odbc-driver

相关问题