Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

github.com/sql-machine-learning/gomaxcompute

Package Overview
Dependencies
Alerts
File Explorer
Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

github.com/sql-machine-learning/gomaxcompute

  • v0.0.0-20210805062559-c14ae028b44c
  • Source
  • Go
  • Socket score

Version published
Created
Source

MaxCompute Go Driver

Build Status GoDoc License

MaxCompute, also known as ODPS, is a distributed storage service and SQL engine provided by Alibaba Cloud. This repository contains a Go SQLDriver of MaxCompute. If you are going to write a Go program that calls the standard library database/sql to access MaxCompute databases, you could use this driver.

This project is in its early stage. Your issues and pull requests are very welcome!

What This Is and Isn't

This project is a driver that helps Go's standard database API talking to MaxCompute server. It has the following features:

  • In pure Go. Not a wrapper of any C/C++ library.
  • Connect to MaxCompute through its HTTP interface.
  • Improve I/O throughput using MaxCompute's tunnel service.

Alibaba Cloud open sourced some client SDKs of MaxCompute:

This project is not an SDK.

Alibaba Cloud also provides ODBC/JDBC drivers:

This project is a Go's database/sql driver.

How to Use

Please make sure you have Go 1.6 or high release.

You can clone the source code by running the following command.

go get -u sqlflow.org/gomaxcompute

Here is a simple example:

package main

import (
    "database/sql"
    "sqlflow.org/gomaxcompute"
)

func assertNoError(e error) {
    if e != nil {
        panic(e)
    }
}

func main() {
    config := gomaxcompute.Config{
        AccessID:  "<access_id>",
        AccessKey: "<access_key>",
        Endpoint:  "<end_point>",
        Project:   "<project_name>"}
    db, e := sql.Open("maxcompute", config.FormatDSN())
    assertNoError(e)
    defer db.Close()

    const sql = `SELECT
                    cast('1'                   AS BIGINT)  AS a,
                    cast(TRUE                  AS BOOLEAN) AS b,
                    cast('hi'                  AS STRING)  AS c,
                    cast('3.14'                AS DOUBLE)  AS d,
                    cast('2017-11-11 03:12:11' AS DATETIME) AS e,
                    cast('100.01' AS DECIMAL)  AS f;`
    rows, e := db.Query(sql)
    assertNoError(e)
    defer rows.Close()

    for rows.Next() {
        // do your stuff
    }
}

Please be aware that to connect to a MaxCompute database, the user needs to provide

  1. the access ID
  2. the access key
  3. the endpoint pointing to the MaxCompute service
  4. a project, which is something similar to a database in MySQL.

Acknowledgement

Our respect and thanks to Ruohang Feng, who wrote a Go SDK for MaxCompute when he worked in Alibaba, for his warm help that enabled this project.

FAQs

Package last updated on 05 Aug 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc