arrow obdc

use arrow_odbc::{odbc_api::Environment, OdbcReader};

const CONNECTION_STRING: &str = "Driver={PostgreSQL ANSI(x64)}; Server=127.0.0.1;Port=5433; UID=postgres; PWD=postgres;";
  #const CONNECTION_STRING: &str = "Driver={SQL Server}; Server=1234;Port=31; UID=admin; PWD=admin;";
fn main() {

    let odbc_environment = Environment::new().unwrap();
    
    // Connect with database.
    let connection = odbc_environment.connect_with_connection_string(CONNECTION_STRING).unwrap();

    // This SQL statement does not require any arguments.
    let parameters = ();

    // Execute query and create result set
    let cursor = connection
        .execute("SELECT * FROM hzfc limit 3", parameters).unwrap()
        .expect("SELECT statement must produce a cursor");

    // Each batch shall only consist of maximum 10.000 rows.
    let max_batch_size = 10_000;

    // Read result set as arrow batches. Infer Arrow types automatically using the meta
    // information of `cursor`.
    let arrow_record_batches = OdbcReader::new(cursor, max_batch_size).unwrap();

    for batch in arrow_record_batches {
        println!("{:?}", batch.unwrap());
        println!("===============================\n");
    }
    // Ok(())
}

  

posted @ 2022-09-30 16:33  CrossPython  阅读(38)  评论(0)    收藏  举报