Merge pull request #47 from YPermitin/develop

Обновление библиотек и адаптация к последней версии ClickHouse
This commit is contained in:
Permitin Yury
2021-01-25 01:56:31 +05:00
committed by GitHub
9 changed files with 38 additions and 92 deletions
@@ -28,7 +28,7 @@ namespace YY.EventLogExportAssistant.ClickHouse
private ClickHouseConnection _connection;
private long logFileLastId = -1;
private IExtendedActions _extendedActions;
private readonly IExtendedActions _extendedActions;
#endregion
@@ -234,86 +234,32 @@ namespace YY.EventLogExportAssistant.ClickHouse
}
public void SaveLogPosition(InformationSystemsBase system, FileInfo logFileInfo, EventLogPosition position)
{
var commandAddLogInfo = _connection.CreateCommand();
commandAddLogInfo.CommandText =
@"INSERT INTO LogFiles (
InformationSystem,
Id,
FileName,
CreateDate,
ModificationDate,
LastEventNumber,
LastCurrentFileReferences,
LastCurrentFileData,
LastStreamPosition
) VALUES (
{isId:String},
{newId:Int64},
{FileName:String},
{CreateDate:DateTime},
{ModificationDate:DateTime},
{LastEventNumber:Int64},
{LastCurrentFileReferences:String},
{LastCurrentFileData:String},
{LastStreamPosition:Int64}
)";
using (ClickHouseBulkCopy bulkCopyInterface = new ClickHouseBulkCopy(_connection)
{
DestinationTableName = "LogFiles",
BatchSize = 100000
})
{
long logFileNewId = GetLogFileInfoNewId(system);
IEnumerable<object[]> values = new List<object[]>()
{
new object[]
{
system.Name,
logFileNewId,
logFileInfo.Name,
logFileInfo.CreationTimeUtc,
logFileInfo.LastWriteTimeUtc,
position.EventNumber,
position.CurrentFileReferences.Replace("\\", "\\\\"),
position.CurrentFileData.Replace("\\", "\\\\"),
position.StreamPosition ?? 0
}
}.AsEnumerable();
commandAddLogInfo.Parameters.Add(new ClickHouseDbParameter
{
ParameterName = "isId",
DbType = DbType.Int64,
Value = system.Name
});
commandAddLogInfo.Parameters.Add(new ClickHouseDbParameter
{
ParameterName = "newId",
DbType = DbType.Int64,
Value = GetLogFileInfoNewId(system)
});
commandAddLogInfo.Parameters.Add(new ClickHouseDbParameter
{
ParameterName = "FileName",
DbType = DbType.AnsiString,
Value = logFileInfo.Name
});
commandAddLogInfo.Parameters.Add(new ClickHouseDbParameter
{
ParameterName = "CreateDate",
DbType = DbType.DateTime,
Value = logFileInfo.CreationTimeUtc
});
commandAddLogInfo.Parameters.Add(new ClickHouseDbParameter
{
ParameterName = "ModificationDate",
DbType = DbType.DateTime,
Value = logFileInfo.LastWriteTimeUtc
});
commandAddLogInfo.Parameters.Add(new ClickHouseDbParameter
{
ParameterName = "LastEventNumber",
DbType = DbType.Int64,
Value = position.EventNumber
});
commandAddLogInfo.Parameters.Add(new ClickHouseDbParameter
{
ParameterName = "LastCurrentFileReferences",
DbType = DbType.AnsiString,
Value = position.CurrentFileReferences.Replace("\\", "\\\\")
});
commandAddLogInfo.Parameters.Add(new ClickHouseDbParameter
{
ParameterName = "LastCurrentFileData",
DbType = DbType.AnsiString,
Value = position.CurrentFileData.Replace("\\", "\\\\")
});
commandAddLogInfo.Parameters.Add(new ClickHouseDbParameter
{
ParameterName = "LastStreamPosition",
DbType = DbType.Int64,
Value = position.StreamPosition ?? 0
});
commandAddLogInfo.ExecuteNonQuery();
var bulkResult = bulkCopyInterface.WriteToServerAsync(values);
bulkResult.Wait();
}
}
public long GetLogFileInfoNewId(InformationSystemsBase system)
{
@@ -3,7 +3,7 @@
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Version>1.0.0.17</Version>
<Version>1.0.0.18</Version>
<Authors>Permitin Yuriy</Authors>
<Company>Permitin Yuriy</Company>
<Product>Event log export assistant to ClickHouse</Product>
@@ -15,7 +15,7 @@
<RepositoryType>GIT</RepositoryType>
<PackageTags>event, log, 1C, enterprise, export, elasticsearch, elk</PackageTags>
<PackageReleaseNotes>Just beginning...</PackageReleaseNotes>
<AssemblyVersion>1.0.0.17</AssemblyVersion>
<AssemblyVersion>1.0.0.18</AssemblyVersion>
</PropertyGroup>
<ItemGroup>
@@ -2,7 +2,7 @@
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
<Version>1.0.0.47</Version>
<Version>1.0.0.48</Version>
<PackageId>YY.EventLogExportAssistant.PostgreSQL</PackageId>
<Authors>Permitin Yuriy</Authors>
<Product>Event log export assistant for PostgreSQL</Product>
@@ -14,9 +14,9 @@
<RepositoryType>GIT</RepositoryType>
<PackageTags>event, log, 1C, enterprise, export, postgres, postgresql</PackageTags>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<AssemblyVersion>1.0.0.47</AssemblyVersion>
<AssemblyVersion>1.0.0.48</AssemblyVersion>
<PackageReleaseNotes>Just beginning...</PackageReleaseNotes>
<FileVersion>1.0.0.47</FileVersion>
<FileVersion>1.0.0.48</FileVersion>
</PropertyGroup>
<ItemGroup>
@@ -32,7 +32,7 @@
</PackageReference>
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="5.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="5.0.0" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="5.0.1" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="5.0.2" />
<PackageReference Include="NpgsqlBulk.EFCore" Version="0.9.0" />
</ItemGroup>
@@ -14,7 +14,7 @@
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="coverlet.collector" Version="3.0.1">
<PackageReference Include="coverlet.collector" Version="3.0.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
@@ -20,7 +20,7 @@
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="coverlet.collector" Version="3.0.1">
<PackageReference Include="coverlet.collector" Version="3.0.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
@@ -17,7 +17,7 @@
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="coverlet.collector" Version="3.0.1">
<PackageReference Include="coverlet.collector" Version="3.0.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
@@ -14,7 +14,7 @@
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="coverlet.collector" Version="3.0.1">
<PackageReference Include="coverlet.collector" Version="3.0.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
@@ -15,7 +15,7 @@
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="coverlet.collector" Version="3.0.1">
<PackageReference Include="coverlet.collector" Version="3.0.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
@@ -18,7 +18,7 @@
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="coverlet.collector" Version="3.0.1">
<PackageReference Include="coverlet.collector" Version="3.0.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>