BigQuery Python: କ୍ୱେରୀଗୁଡ଼ିକ ପ୍ରକ୍ସି ମାଧ୍ୟମରେ ଚାଲେ, ଡାଉନଲୋଡ୍ ବିଫଳ ହୁଏ
BigQuery Python ର ଫଳାଫଳ ଡାଉନଲୋଡ୍ କ୍ୱେରୀର HTTP ପଥରୁ ସ୍ୱାଧୀନ ଭାବରେ ଏକ Storage API କ୍ଲାଏଣ୍ଟ ସୃଷ୍ଟି କରେ କି ନାହିଁ ଯାଞ୍ଚ କରନ୍ତୁ।
ଏକ କ୍ୱେରୀ ସଫଳତାର ସହିତ ସମ୍ପୂର୍ଣ୍ଣ ହୋଇପାରେ ଏବଂ ତଥାପି ଏହାର ଫଳାଫଳ pandas କୁ ଡାଉନଲୋଡ୍ କରିବା ସମୟରେ ବିଫଳ ହୋଇପାରେ। BigQuery Python ଲାଇବ୍ରେରୀ ସେହି ଡାଉନଲୋଡ୍ ପାଇଁ ଏକ ପୃଥକ BigQuery Storage API କ୍ଲାଏଣ୍ଟ ବ୍ୟବହାର କରିପାରେ।
RowIterator.to_dataframe ଇଣ୍ଟରଫେସ୍ create_bqstorage_client, ଯାହାର ପୂର୍ବନିର୍ଦ୍ଧାରିତ ମୂଲ୍ୟ true, ଏବଂ bqstorage_client ଆର୍ଗୁମେଣ୍ଟକୁ ଦଲିଲଭୁକ୍ତ କରେ। ସେହି ସେଟିଂଗୁଡ଼ିକୁ ଆପ୍ଲିକେସନରେ ଥିବା ନିର୍ଭରତା ସହିତ ପଢ଼ନ୍ତୁ। ସାଧାରଣ କ୍ୱେରୀ ପଥରେ ସଫଳତା ଐଚ୍ଛିକ ଡାଉନଲୋଡ୍ ପରିବହନରେ ସମାନ ପ୍ରକ୍ସି ସମର୍ଥନ କିମ୍ବା ବିନ୍ୟାସ ଅଛି ବୋଲି ପ୍ରମାଣ କରେ ନାହିଁ।
| ପର୍ଯ୍ୟାୟ | କଣ ଯାଞ୍ଚ କରିବେ |
|---|---|
| ପ୍ରମାଣପତ୍ର ପ୍ରାପ୍ତି | ପ୍ରମାଣପତ୍ର ପରିବହନ ଏବଂ ପରିଚୟ endpoint |
| କ୍ୱେରୀ ଦାଖଲ ଏବଂ ପୋଲିଂ | BigQuery କ୍ଲାଏଣ୍ଟର ଅନୁରୋଧ ପଥ |
| Storage API ମାଧ୍ୟମରେ ଡାଉନଲୋଡ୍ | Storage API କ୍ଲାଏଣ୍ଟ ଏବଂ ଏହାର ପରିବହନ |
ନିୟନ୍ତ୍ରିତ ତୁଳନା ପାଇଁ, ଦଲିଲଭୁକ୍ତ create_bqstorage_client=False ବିକଳ୍ପ ସେହି ଅତିରିକ୍ତ କ୍ଲାଏଣ୍ଟ ସ୍ୱୟଂଚାଳିତ ଭାବରେ ସୃଷ୍ଟି ହେବାରୁ ବଞ୍ଚାଏ। କେଉଁ ପଥ ବିଫଳ ହେଉଛି ଚିହ୍ନଟ କରିବାରେ ଏହା ସାହାଯ୍ୟ କରିପାରେ। ଏହା ପ୍ରଦର୍ଶନ ଉପରେ ପ୍ରଭାବ ପକାଉଥିବା ଏକ ପରିବହନ ଚୟନ, ପ୍ରକ୍ସି ନିଜେ ମରାମତି ହୋଇଛି ବୋଲି ପ୍ରମାଣ ନୁହେଁ।
ଯଦି ଆପ୍ଲିକେସନ ନିଜର Storage API କ୍ଲାଏଣ୍ଟ ଯୋଗାଏ, ସେହି କ୍ଲାଏଣ୍ଟକୁ ସଚେତନ ଭାବରେ ବିନ୍ୟାସ କରନ୍ତୁ। ଅନ୍ୟ କ୍ଲାଏଣ୍ଟ ସହିତ ସଂଯୁକ୍ତ ଏକ କଷ୍ଟମ HTTP ବସ୍ତୁ ଏହାକୁ ପୁନଃ ବିନ୍ୟାସ କରିବ ବୋଲି ଅନୁମାନ କରନ୍ତୁ ନାହିଁ।
ପୁରୁଣା ଉଦାହରଣଗୁଡ଼ିକ ଅପ୍ରଚଳିତ httplib2 କାର୍ଯ୍ୟାନ୍ୱୟନ କିମ୍ବା ବ୍ୟକ୍ତିଗତ constructor hook ବିଷୟରେ ଆଲୋଚନା କରେ। ସଂହତିକୁ ସ୍ଥାପିତ ଲାଇବ୍ରେରୀ ପିଢ଼ି ସହିତ ମେଳାନ୍ତୁ, ଏବଂ ବିଫଳ ପର୍ଯ୍ୟାୟକୁ ରିପୋର୍ଟରେ ରଖନ୍ତୁ। DataFrame ରୂପାନ୍ତରଣ ତ୍ରୁଟି ଏବଂ ପ୍ରତ୍ୟାଖ୍ୟାତ ନେଟୱାର୍କ ସଂଯୋଗ ସମାନ ମେଥଡ୍ କଲରେ ଘଟିଲେ ମଧ୍ୟ ଭିନ୍ନ ଫଳାଫଳ।