Azure SQL DB のデータを定期的に削除する方法

okwaves2024-01-25  8

イベント ハブに接続しながら、ストリーム分析を使用して Azure SQL データベースにデータを取り込んでいます。私がやろうとしているのは、テーブルからデータを定期的に削除して、保存された日数だけを維持することです。例: 30 日。

データベースに対して必要な T-SQL を定期的に実行する方法を追跡しようとしていたところ、解決策として Azure Elastic ジョブを見つけました。

https://learn.microsoft.com/en-us/azure/azure-sql/database/elastic-jobs-tsql-create-manage

これは、Azure SQL データベースから行を定期的に削除する最良の方法ですか?

おそらく、Azure Data Factory は、任意のスケジュールで実行されるように設定されています。

– ティム・マイロット

2020 年 9 月 4 日 21:04

こんにちは @TsSkTo さん。回答が役に立った場合は、回答として受け入れていただければ幸いです。これは、コミュニティの他のメンバーにとって有益となる可能性があります。ありがとうございます。

– レオン・ユエ

2020 年 9 月 8 日 0:04



------------------------

削除するストアド プロシージャを作成できますテーブル内のデータ。

それを実現する方法はたくさんあります。

Data Factory で、時間トリガーを使用して削除ストアド プロシージャを呼び出すパイプラインを毎月作成します。

ロジック アプリを使用して、削除ストアド プロシージャを呼び出す繰り返しトリガーを作成します。

見つけた Azure Elastic ジョブを試してみるのもいいでしょう。

自分にとって最も簡単だと思う方法を選択してください。Azure SQL データベースから行を定期的に削除するには、それが最適な方法だと思います。

1

ロジック アプリは、ああ、行きます。シンプルかつビジュアル。まさに私が探していたものです。

– TsSkTo

2020 年 9 月 25 日 19:25



------------------------

テンポラル テーブルには保存期間があります。あなたのユースケースに適している場合は、これを検討してください。それ以外の場合は、ジョブ フレームワークを使用して、前述したように 1 日に 1 回古いデータを削除できます。



------------------------

Azure Automation を使用して、クリーンアップを行うストアド プロシージャを実行することもできます。次の電源を実行できますRunBook のシェル (Azure Automation)。

$sqlSvrName=“DBServerName"

$sqlDbName=“DatabaseName"

$sqlUserName=“DatabaseUserName"

$sqlPassword=“DatabaseUserPassword"

$sqlStoredProcedure=“StoredProcedureName"

 

$sqlConnection = New-Object System.Data.SqlClient.SqlConnection

$sqlConnection.ConnectionString = “Server=$sqlSvrName;uid=$sqlUserName;pwd=$sqlPassword;Initial Catalog=$sqlDbName“

$startDateTime = Get-Date

$sqlConnection.Open()

 

select $sqlConnection.ConnectionString

 

$sqlCmd = New-Object System.Data.SqlClient.SqlCommand

# specify that command is a stored procedure

$sqlCmd.CommandType=[System.Data.CommandType]'StoredProcedure'

# specify the name of the stored procedure

$sqlCmd.CommandText = $sqlStoredProcedure

$sqlCmd.Connection = $sqlConnection 

#————- specify optional parameters to stored procedure

#$startDateTime=$sqlCmd.Parameters.Add(“@rundatetime" , [System.Data.SqlDbType]::DateTime)

$startDateTime = Get-Date

 $sqlCmd.ExecuteNonQuery() 

Azure Automation でこれを行うための完全な手順については、ここをお読みください。

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。