Spanner ADO.NET 드라이버 사용

ADO.NET은 .NET의 데이터 소스에 액세스하기 위한 일반 인터페이스입니다. 애플리케이션에서 ADO.NET을 사용하려면 Spanner ADO.NET 드라이버를 사용하세요.

SpannerADO.NET 드라이버는 GoogleSQL 언어 데이터베이스와 PostgreSQL 언어 데이터베이스를 지원합니다.

Spanner ADO.NET 드라이버 설치

애플리케이션에서 Spanner ADO.NET 드라이버를 사용하려면 다음 패키지를 .NET 프로젝트에 추가합니다.

  Google.Cloud.Spanner.DataProvider

Spanner ADO.NET 드라이버 사용

Spanner 데이터베이스에 대한 ADO.NET 연결을 만들려면 정규화된 데이터베이스 이름을 연결 문자열로 사용하여 SpannerConnectionStringBuilder를 만듭니다.

GoogleSQL

/// <summary>
/// Create an ADO.NET connection to a Spanner database.
/// </summary>
/// <param name="connectionString">
/// A connection string in the format
/// 'Data Source=projects/my-project/instances/my-instance/databases/my-database'.
/// </param>
public static async Task CreateConnection(string connectionString)
{
    // Use a SpannerConnectionStringBuilder to construct a connection string.
    // The SpannerConnectionStringBuilder contains properties for the most
    // used connection string variables.
    var builder = new SpannerConnectionStringBuilder(connectionString)
    {
        // Sets the default isolation level that should be used for all
        // read/write transactions on this connection.
        DefaultIsolationLevel = IsolationLevel.RepeatableRead,

        // The Options property can be used to set any connection property
        // as a key-value pair.
        Options = "statement_cache_size=2000"
    };

    await using var connection = new SpannerConnection(builder.ConnectionString);
    await connection.OpenAsync();

    await using var command = connection.CreateCommand();
    command.CommandText = "SELECT 'Hello World' as Message";
    await using var reader = await command.ExecuteReaderAsync();
    while (await reader.ReadAsync())
    {
        Console.WriteLine($"Greeting from Spanner: {reader.GetString(0)}");
    }
}

PostgreSQL

/// <summary>
/// Create an ADO.NET connection to a Spanner PostgreSQL database.
/// </summary>
/// <param name="connectionString">
/// A connection string in the format
/// 'Data Source=projects/my-project/instances/my-instance/databases/my-database'.
/// </param>
public static async Task CreateConnection(string connectionString)
{
    // Use a SpannerConnectionStringBuilder to construct a connection string.
    // The SpannerConnectionStringBuilder contains properties for the most
    // used connection string variables.
    var builder = new SpannerConnectionStringBuilder(connectionString)
    {
        // Sets the default isolation level that should be used for all
        // read/write transactions on this connection.
        DefaultIsolationLevel = IsolationLevel.RepeatableRead,

        // The Options property can be used to set any connection property
        // as a key-value pair.
        Options = "statement_cache_size=2000"
    };

    await using var connection = new SpannerConnection(builder.ConnectionString);
    await connection.OpenAsync();

    await using var command = connection.CreateCommand();
    command.CommandText = "SELECT 'Hello World' as Message";
    await using var reader = await command.ExecuteReaderAsync();
    while (await reader.ReadAsync())
    {
        Console.WriteLine($"Greeting from Spanner: {reader.GetString(0)}");
    }
}

자세한 내용은 Spanner ADO.NET 드라이버 GitHub 저장소를 참고하세요.

지원되는 기능

Spanner ADO.NET 드라이버 예시 코드 디렉터리에는 일반적으로 사용되는 Spanner 기능에 대한 실행 준비가 완료된 예시가 포함되어 있습니다.

성능 팁

Spanner ADO.NET 드라이버를 사용할 때 최상의 성능을 얻으려면 다음 권장사항을 따르세요.

다음 단계

  • 코드 예시에서 ADO.NET 드라이버와 함께 Spanner를 사용하는 방법 자세히 알아보기
  • ADO.NET에 대해 자세히 알아보세요.
  • 기능 요청이나 버그를 신고하거나 Spanner ADO.NET 드라이버에 대해 질문하려면 GitHub 문제 제출