Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure 使用“选择对象”更改特性的数据类型和添加计算特性_Azure_Powershell_Azure Powershell_Azure Data Lake_Select Object - Fatal编程技术网

Azure 使用“选择对象”更改特性的数据类型和添加计算特性

Azure 使用“选择对象”更改特性的数据类型和添加计算特性,azure,powershell,azure-powershell,azure-data-lake,select-object,Azure,Powershell,Azure Powershell,Azure Data Lake,Select Object,正在尝试从对象获取详细信息并希望将其保存到SQL表 $GetFiles ` | Select-Object -Property Name, Type ` | Write-SqlTableData -ServerInstance $SQLServer -DatabaseName $SQLDatabase -SchemaName $SQLSchema -TableName $SQLTable -Credential $SQLCredential -Force 问题1。上面的代码失

正在尝试从对象获取详细信息并希望将其保存到SQL表

$GetFiles `
    | Select-Object -Property  Name, Type `
    | Write-SqlTableData -ServerInstance $SQLServer -DatabaseName $SQLDatabase -SchemaName $SQLSchema -TableName $SQLTable -Credential $SQLCredential -Force
问题1。上面的代码失败并出现错误。移除类型柱是可行的。但有没有办法将类型属性强制转换为字符串

写入SqlTableData:找不到.Net类型“Microsoft.Azure.Commands.DataLakeStore.Models.DataLakeStore+FileType”与列“type”的SQL类型之间的映射。 考虑删除具有该类型的列并重复操作。

问题2。我还想添加一个额外的列,比如RowInsertedDate,它将有当前的时间戳,还有一个硬编码列,比如LoadStatus,它的值已启动。如何添加它select子句

问题3。是否要截断此表,然后向其写入数据

您需要对选择对象使用计算属性,如中所述:

Re 1,将类型属性值转换为字符串[string]:

Re 2,添加带有时间戳的RowInsertedDate列和带有固定值“Started”的LoadStatus列:

注意:位置参数隐式绑定到-Property参数

Re 3,首先截断目标表:

我个人无法验证这一点,但我认为您需要将cmdlet与 因为您正在使用Azure Data Lake

以下几点——显然,要小心,因为截断是不可逆的:

# UNTESTED. Note that TRUNCATE is IRREVERSIBLE.
Invoke-SqlCmd -Query "TRUNCATE TABLE $SQLSchema.$SQLTable" `
  -ServerInstance $SQLServer -Database $SQLDatabase -Credential $SQLCredential -Force
您需要将计算特性用于选择对象,如中所述:

Re 1,将类型属性值转换为字符串[string]:

Re 2,添加带有时间戳的RowInsertedDate列和带有固定值“Started”的LoadStatus列:

注意:位置参数隐式绑定到-Property参数

Re 3,首先截断目标表:

我个人无法验证这一点,但我认为您需要将cmdlet与 因为您正在使用Azure Data Lake

以下几点——显然,要小心,因为截断是不可逆的:

# UNTESTED. Note that TRUNCATE is IRREVERSIBLE.
Invoke-SqlCmd -Query "TRUNCATE TABLE $SQLSchema.$SQLTable" `
  -ServerInstance $SQLServer -Database $SQLDatabase -Credential $SQLCredential -Force
# UNTESTED. Note that TRUNCATE is IRREVERSIBLE.
Invoke-SqlCmd -Query "TRUNCATE TABLE $SQLSchema.$SQLTable" `
  -ServerInstance $SQLServer -Database $SQLDatabase -Credential $SQLCredential -Force