Я запрашивал и вставлял данные из Impala и в Impala через ODBC, но он медленный (по крайней мере, по сравнению с Postgres или SQL Server), и драйвер ODBC позволяет выполнять запросы один за другим, что абсолютно не рекомендуется, посколькукаждая вставка создает новый файл в HDFS.
Я читаю документы ODBC, доступные на сайте Simba и Cloudera, но пакетные операции или прямое выполнение SQL не упоминаются.
Это код, который ядо сих пор пробовал
static void Main(string[] args)
{
string insert = $"INSERT INTO tbl(version, snapshot) " +
$"VALUES(?, ?)";
OdbcConnection connection = new OdbcConnection("DSN=connection");
connection.Open();
using (OdbcCommand insertCommand = new OdbcCommand(insert, connection))
{
for (int i = 10; i < 15; i++)
{
List<OdbcParameter> parameters = new List<OdbcParameter>();
OdbcParameter versionParam = new OdbcParameter("@version", OdbcType.Text);
versionParam.Value = "bla" + i;
parameters.Add(versionParam);
OdbcParameter snapshotParam = new OdbcParameter("@snapshot", OdbcType.Text);
snapshotParam.Value = "blabla" + i;
parameters.Add(snapshotParam);
insertCommand.Parameters.AddRange(parameters.ToArray());
}
string query = insertCommand.CommandText.ToString();
Console.WriteLine(query);
//insertCommand.ExecuteReader();
insertCommand.ExecuteNonQuery();
}
}
Вставлена одна строка, однако 5 должно быть.Что я делаю не так?