問題タブ [azure-synapse]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
azure - Azure SQL Database から Azure Synapse への移行
現在、アプリケーション データベースから Azure SQL データベースにデータを取り込んでいます。現在、サイズは約 600 GB で (主に 3 つのファクト テーブルのみに分散されており、残りのテーブルは非常に小さいマスター データです)、40 個の仮想コアで実行されています (レポートに頻繁に使用するため、大きな数が必要です)。仮想コアの数)。
私が現在直面しているいくつかの問題:
通常、ソースからシンクへのデータ コピーには非常に長い時間がかかります。私たちが使用しているアプローチは
delete
、今月のすべてのレコードに対して、次にcopy
アプリケーション データベースからの今月のデータに対してです。通常、シンクへの書き込みにも多くの時間がかかります (私が信じているファクト テーブルのインデックスのため)。誰かが大きなクエリをプルするたびに、データ I/O が高くなります。
ここで、誰かがセットアップをより速く機能させる方法についていくつかの光を当てることができることを願っています.
ありがとう!
azure - 別の Azure SQL DW から 1 つの Azure SQL DW からテーブルにアクセスする方法は?
現在の Azure SQL DWH のストアド プロシージャ内の別の SQL DWH のテーブルにアクセスしたいと考えています。オンラインで検索したところ、SQL データベースのメソッドのみが見つかりました。誰かが回避策を見つけたかどうか教えてください。
PS: 2 つの DWH のテーブルを同期することは可能ですか。つまり、1 つの DWH のテーブルに更新があるたびに、別の DWH の同じテーブルにコピーされます。
azure-data-lake - Azure Synapse のリンクされたストレージで parcquet ファイルを読み取ろうとしています
Gen2 Data Lake コンテナーの寄木細工のファイルへのアクセスを許可しようとしています。コンテナーに所有者 RBAC がありますが、他のユーザーのコンテナーへのアクセスを制限したいと考えています。
私のクエリは非常に単純です:
これを実行すると、接続に問題はありません。ファイルに ACL 権限を追加しようとしました (もちろん、「Top」と「Sub」を含むフォルダー)。
ストレージ エクスプローラーを使用して 'トップ' フォルダーに RWX を指定し、デフォルトで 'サブ' フォルダーにカスケードし、ファイルを追加すると寄木細工のファイルになります。
同僚が SQL スクリプトを実行しようとすると、エラー メッセージが表示されます。Failed to execute query. Error: File 'https://aztsworddataaipocacldl.dfs.core.windows.net/pocacl/Top/Sub/part-00006-c62926ba-c530-4ad8-87d1-cf38c67a2da3-c000.snappy.parquet' cannot be opened because it does not exist or it is used by another process.
NB 同様の結果が Spark でも発生しますが、代わりに 403 が発生します
SQL オンデマンドは 、エラーの後に次のヘルプ ファイルへのリンクを提供します。
「ファイルが存在しないか、別のプロセスで使用されているため、ファイルを開くことができません」というエラーでクエリが失敗し、両方のファイルが存在し、別のプロセスで使用されていないことが確実な場合は、SQL オンデマンドができないことを意味します。ファイルにアクセスします。この問題は通常、Azure Active Directory ID にファイルへのアクセス権がないために発生します。既定では、SQL オンデマンドは Azure Active Directory ID を使用してファイルにアクセスしようとします。この問題を解決するには、ファイルにアクセスするための適切な権限が必要です。最も簡単な方法は、クエリを実行しようとしているストレージ アカウントに対する "ストレージ BLOB データ共同作成者" ロールを自分自身に付与することです。
Storage Blob Data Contributor または Storage Blob Data Reader を許可したくありません。これにより、エンド ユーザーにクエリを実行させたいファイルだけでなく、コンテナー上のすべてのファイルにアクセスできるようになります。寄木細工の外部テーブルに接続する SSMS で同じエクスペリエンスが発生することがわかりました。
それでは、部分的に:
- これは、ACL を使用してアクセスを許可する正しいパターンですか、それとも別の方法を使用する必要がありますか?
- ACL をサポートするために有効にする必要があるストレージ アカウントまたはクエリ/ノートブック内の設定はありますか?*
- Synapse Workspace はまだプレビュー段階ですが、ACL は現在までに Synapse Workspace に実装されていますか?
*この問題に何が関連していて、何がまったく関係がないのか本当にわからないので、設定全体を貼り付けることに抵抗しましたが、もちろん提供できます.